prism中当绑定数据发生变化触发方法怎么写
时间: 2024-10-23 07:07:32 浏览: 11
在Prism(Microsoft Silverlight或Windows Phone 8及更高版本的一种MVVM框架)中,当你需要在数据绑定的数据发生变化时触发某个方法,你可以使用`ObservableCollection`或依赖于属性(Dependency Properties)的自动通知功能。
对于`ObservableCollection`,例如你有一个包含自定义对象的`List`,可以这样做:
```csharp
private ObservableCollection<MyObject> myObjects = new ObservableCollection<MyObject>();
// 在你的ViewModel中
public ObservableCollection<MyObject> MyObjects
{
get { return myObjects; }
set { SetProperty(ref myObjects, value); } // 使用Prism的SetProperty方法,它会处理更改的通知
}
// 当MyObjects集合改变时,你的处理方法
private void OnMyObjectsChanged(object sender, NotifyCollectionChangedEventArgs e)
{
// 在这里处理数据变化,比如更新UI、保存到数据库等
}
```
如果你在依赖属性上观察数据变化,可以在属性声明处添加`PropertyChanged`事件,并在事件处理器中执行相应的操作:
```csharp
public string MyBoundValue { get; set; }
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
// 当MyBoundValue属性值改变时
private void MyBoundValueChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(MyBoundValue))
{
// 处理属性值变化
}
}
```
阅读全文