Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ObservableCollection的项目被替换时收到通知_C#_Wpf_Observablecollection - Fatal编程技术网

C# 如何在ObservableCollection的项目被替换时收到通知

C# 如何在ObservableCollection的项目被替换时收到通知,c#,wpf,observablecollection,C#,Wpf,Observablecollection,我想将事件处理程序添加到可观察的集合中,每次在其中添加、删除或更新项时都会触发该集合 CollectionChanged事件在添加或删除项时引发,但在替换项时(例如,使用类似的内容)不会引发 obsList[5] = MyUpdatedCustomObject; 有什么建议吗?我想,你不能这么做,索引器: private ObsersvableCollection<Type> _MyCollection = new ObservableCollection<Type>(

我想将事件处理程序添加到可观察的集合中,每次在其中添加、删除或更新项时都会触发该集合

CollectionChanged事件在添加或删除项时引发,但在替换项时(例如,使用类似的内容)不会引发

obsList[5] = MyUpdatedCustomObject;

有什么建议吗?

我想,你不能这么做,索引器:

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;

    }
}
public T this[int index] { get; set; }
是从集合类继承的,此索引器不是虚拟的,无法更改其行为


但实际上,当我在一个非常小的应用程序上测试时,事件将在您的情况下触发,您有错误,请提供一些额外的代码

我想,你不能这么做,索引器:

public T this[int index] { get; set; }
是从集合类继承的,此索引器不是虚拟的,无法更改其行为


但实际上,当我在一个非常小的应用程序上测试时,事件将在您的情况下触发,您有错误,请提供一些额外的代码

可能重复:这不是一个dublicate there用户指的只是更改MyUpdatedCustomObject的一个属性,而我在这里问的问题有点不同。您如何收听ObservateCollections changed事件?可能重复:这不是一个dublicate there用户指的是仅更改MyUpdatedCustomObject的一个属性,而我我在这里问的是有点不同您如何收听ObservableCollections changed事件?不包括OP需要在项目更新时得到通知。您不需要空的delegatehandler-\u MyCollection.CollectionChanged+=\u MyCollection\u CollectionChanged;已足够,不包括更新项目时需要通知OP。您不需要空的delegatehandler-\u MyCollection.CollectionChanged+=\u MyCollection\u CollectionChanged;足够了