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