[英]Wrapping ObservableCollection<T> in C#
我有理由将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));
}
(Collection是我正在包装的ObservableCollection<T>
的实例)。
有没有办法利用Collection提供的INotifyCollectionChanged
的实现,而不是自己重新实现它?
是。 当您分配Collection
属性或字段的值时,请处理其 CollectionChanged事件:
Collection = new ObservableCollection<T>();
Collection.CollectionChanged += this.HandleCollectionChanged;
然后在HandleCollectionChanged方法中,引发对象自己的CollectionChanged事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.