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 回答