这是一个示例代码:
public class MyParent : INotifyPropertyChanged
{
List<MyChild> MyChildren;
public bool IsChanged
{
get
{
foreach (var child in MyChildren)
{
if (child.IsChanged) return true;
}
return false;
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaiseChanged(string propName)
{
if (PropertyChanged != null)
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propName));
}
}
public class MyChild : INotifyPropertyChanged
{
private int _Value;
public int Value
{
get
{
return _Value;
}
set
{
if (_Value == value)
return;
_Value = value;
RaiseChanged("Value");
RaiseChanged("IsChanged");
}
} …Run Code Online (Sandbox Code Playgroud) private ObservableCollection<Employee> models = new ObservableCollection<Employee>();
Run Code Online (Sandbox Code Playgroud)
我的模型有2个字段(Name和一个布尔字段调用activeDuty)
在我的构造函数中,我
this.models.CollectionChanged += this.OnCollectionChanged;
void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e)
Run Code Online (Sandbox Code Playgroud)
我从来没有使用过ObservableCollection,有人可以告诉我如何检测activeDuty字段是否被修改?(我做了一些挖掘并看到很多关于OnCollectionChanged和OnItemPropertyChanged的帖子但是没有理解差异或为什么一个比另一个更受欢迎