C#でlapping observablecollection
-
27-10-2019 - |
質問
理由があります のインスタンスをラップする 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
プロパティまたはフィールド、ハンドル これは CollectionChangedイベント:
Collection = new ObservableCollection<T>();
Collection.CollectionChanged += this.HandleCollectionChanged;
次に、HandleCollectionChangedメソッドでは、オブジェクト独自のCollectionChangedイベントを上げます。
所属していません StackOverflow