2

アイテムが追加、削除、または更新されるたびにトリガーされる監視可能なコレクションにイベント ハンドラーを追加したいと考えています。

CollectionChanged イベントは、アイテムが追加または削除されたときに発生しますが、アイテムが次のように置き換えられたときには発生しません。

obsList[5] = MyUpdatedCustomObject;

助言がありますか?

4

2 に答える 2

2

私は、あなたはこれを行うことができないと思った、インデクサー:

public T this[int index] { get; set; }

クラスから継承されてCollection<T>いるため、このインデクサーは仮想ではなく、その動作を変更できません!

しかし、実際には、私が非常に小さなアプリケーションでテストしたところ、あなたのケースでイベントが発生しました。何か問題があります。追加のコードを提供してください!

于 2013-01-17T13:01:35.867 に答える
-3
private ObsersvableCollection<Type> _MyCollection = new ObservableCollection<Type>();

_MyCollection.CollectionChanged += new NotifyCollectionChangedEventHandler(_MyCollection_CollectionChanged);

protected void _MyCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    switch(e.Action)
    {
        case NotifyCollectionChangedAction.Add:
            //use e.NewItems to get items added.     
        break;
        case NotifyCollectionChangedAction.Remove:
            //use e.OldItems to get items removed.
        break;

    }
}
于 2013-01-17T12:56:29.277 に答える