我制作了一个 ObservableCollection<T> ,每次更改集合中对象的属性 (T: INPC) 时都会触发 CollectionChangedEvent。我想知道 T 的哪个属性触发了 CollectionChangedEvent,所以我尝试了以下方法:
void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset, e));
}
我将 PropertyChangedEventArgs e 传递给 NotifyCollectionChangedEventArgs 的构造函数。
根据 Intellisense,第二个构造函数采用两个参数:一个 NotifyCollectionChangedAction 和一个名为“changedObject”的对象,该对象被描述为“受更改影响的项目”。
所以我认为我可以在 CollectionChangedEventHandler 中获取该对象并检查 PropertyName,但是哦!惊喜!NotifyCollectionChangedEventArgs 没有公开“ChangedObject”属性(我可以看到 Action、NewItems、OldItems、NewStartingIndex、OldStartingIndex)。
关于如何实现这一目标的任何想法?顺便说一句,用您以后无法访问的对象构造 NotifyCollectionChangedEventArgs 有什么用?