繁体   English   中英

包装ObservableCollection <T> 在C#中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM