我有一个简单的课程。我可以更改它的属性并得到通知。但是当我更改任何属性时,对象实例属性更改不会更改。如何更改对象实例属性更改以启用以下事件?
public class A : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public int _id;
public int Id
{
get { return _id; }
set
{
if (_id == value)
{
return;
}
_id = value;
OnPropertyChanged("Id");
}
}
public string _name;
public string Name
{
get { return _name; }
set
{
if (_name == value)
{
return;
}
_name = value;
OnPropertyChanged("Name");
}
}
}
foreach (INotifyPropertyChanged item in new ObservableCollection<A>() )
item.PropertyChanged += new PropertyChangedEventHandler(Item_PropertyChanged);
private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
}
答案 0 :(得分:0)
ObservableCollection not noticing when Item in it changes (even with INotifyPropertyChanged)
这个问题在simon的回答2中提供了一个可能的解决方案。他继承自ObservableCollection并将集合事件处理程序挂钩到每个单独的PropertyChanged事件。