我已经创建了一个ObservableCollection
void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset, e));
}
我将PropertyChangedEventArgs传递给NotifyCollectionChangedEventArgs的构造函数。
根据智能感知,第二个构造函数接受两个参数:NotifyCollectionChangedAction和一个名为"changedObject"的对象,该对象被描述为"受更改影响的项"。
所以我认为我可以在CollectionChangedEventHandler中抓取那个对象并检查PropertyName,但是哦!惊喜!NotifyCollectionChangedEventArgs不暴露"ChangedObject"属性(我可以看到Action, NewItems, OldItems, NewStartingIndex, OldStartingIndex)。
对如何实现这一点有什么想法吗?顺便说一下,它有什么用构造NotifyCollectionChangedEventArgs与一个对象,你不能访问以后?
当您使用NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction, object)
构造函数时,changedItem
将在NewItems
集合中(如果您指定NotifyCollectionChangedAction.Add
)或OldItems
集合中(如果您指定NotifyCollectionChangedAction.Remove
)。
如果指定了NotifyCollectionChangedAction.Reset
,则changedItem
参数必须为null
,否则将得到一个ArgumentException
。
如果您指定任何其他NotifyCollectionChangedAction
值,您也将获得ArgumentException
。