屬性更改通知(INotifyPropertyChanged)——針對ObservableCollection
阿新 • • 發佈:2017-12-31
notify upd ev3 bsp blank rop ref ring handle
問題
在開發webform中,wpf中的ObservableCollection<T>,MSDN中說,在添加項,移除項時此集合通知控件,我們知道對一個集合的操作是CURD
但是恰恰沒有Update的時候提供集合通知,也就是說當我Update的時候,雖然"集合內容“已被修改,但是"控件“卻沒有實現同步更新
INotifyPropertyChanged提供了解決方案。
方案1:INotifyPropertyChanged
傳統方式,實現接口INotifyPropertyChanged
public class StudentByINotifyPropertyChanged: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
//實現INotifyPropertyChanged接口
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private string sex;
private string name;
public string Sex
{
get { return sex; }
set
{
sex = value;
NotifyPropertyChanged("Sex");
}
}
public string Name
{
get { return name; }
set
{
name = value;
NotifyPropertyChanged("Name");
}
}
}
示例代碼
https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/PropertyChanged
方案2:采用框架實現好的
mvvmlight的ViewModelBase已實現該方法,使用如下
List與ObservableCollection對比
List可檢查更改,不能檢查增加、刪除
ObservableCollection檢查增加、刪除,不能檢查更改
屬性更改通知(INotifyPropertyChanged)——針對ObservableCollection