簡體   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