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