C# 如何获取ObservableCollection中的更改 public observeCollection IncludedMembers{get;set;}

C# 如何获取ObservableCollection中的更改 public observeCollection IncludedMembers{get;set;},c#,observablecollection,C#,Observablecollection,假设我引用了IncludedMembers我希望在添加/删除/编辑集合项时发生事件。这就是可观察集合的用途 只需绑定到集合,即可进行排序 处理CollectionChanged事件 //注册事件,以便每次在集合CollectionChangedMethod方法中发生更改时都将调用该方法 public ObservableCollection<IndividualEntityCsidClidDetail> IncludedMembers { get; set; } 创建这样一个方法

假设我引用了
IncludedMembers
我希望在添加/删除/编辑集合项时发生事件。

这就是可观察集合的用途


只需绑定到集合,即可进行排序

处理
CollectionChanged
事件

//注册事件,以便每次在集合
CollectionChangedMethod
方法中发生更改时都将调用该方法

public ObservableCollection<IndividualEntityCsidClidDetail> IncludedMembers { get; set; }
创建这样一个方法

    yourCollection.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler 
(CollectionChangedMethod);

只需注册到集合的活动。当您添加或删除项目或以其他方式更改集合内容时,它将引发事件


如果要在集合中的项的属性发生更改时接收事件,则需要确保这些项先发送到各个对象。

是否在WPF或WinForms环境中使用集合?你想达到什么目标?如果您在WPF中,绑定可能比事件处理更好。这不需要简单地更改IncludeMembers中的对象域。要简化成员中的更改,请使用members类中更改的notify属性。关于
NotifyCollectionChangedAction.Reset
?它是否也调用
NotifyCollectionChangedAction.Remove
?OP询问如何侦听集合中的更改。他没有讨论绑定。。。
private void CollectionChangedMethod(object sender, NotifyCollectionChangedEventArgs e)
{
       //different kind of changes that may have occurred in collection
       if(e.Action == NotifyCollectionChangedAction.Add)
        {
            //your code
        }
        if (e.Action == NotifyCollectionChangedAction.Replace)
        {
            //your code
        }
        if (e.Action == NotifyCollectionChangedAction.Remove)
        {
            //your code
        }
        if (e.Action == NotifyCollectionChangedAction.Move)
        {
            //your code
        }
}