I have reason包装 ObservableCollection<T>
的实例另一种类型。
我正在实现 ICollection<T>
在我的新类型中。这很简单。我也在实现 INotifyCollectionChanged
, 这意味着实现
public event NotifyCollectionChangedEventHandler CollectionChanged;
我能想到的最好的实现方式是在我的 ICollection<T>
实现中添加额外的代码。 ,像这样:
public void Add(T item)
{
Collection.Add(item);
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item));
}
(集合是我包装的 ObservableCollection<T>
的实例)。
有没有办法利用 INotifyCollectionChanged
的实现? Collection 提供的,而不是我自己重新实现的?
最佳答案
是的。当您为 Collection
属性或字段赋值时,处理它的 CollectionChanged 事件:
Collection = new ObservableCollection<T>();
Collection.CollectionChanged += this.HandleCollectionChanged;
然后在 HandleCollectionChanged 方法中,引发对象自己的 CollectionChanged 事件。
关于c# - 在 C# 中包装 ObservableCollection<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350239/