我想为可观察集合添加一个事件处理程序,每次在其中添加,删除或更新项目时都会触发该事件处理程序。
在添加或删除项目时会引发CollectionChanged事件,但在更换项目时不会引发事件。用这样的东西
obsList[5] = MyUpdatedCustomObject;
有什么建议吗?
答案 0 :(得分:2)
我想,你不能这样做,索引器:
public T this[int index] { get; set; }
继承自Collection<T>
类,这个索引器不是虚拟的来改变它的行为!
但实际上,当我在一个非常小的应用程序上测试时,事件会在你的情况下触发,你有什么问题,请提供一些额外的代码!
答案 1 :(得分:-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;
}
}