如何在ObservableCollection中进行更改

时间:2011-05-15 10:15:12

标签: c# observablecollection

public ObservableCollection<IndividualEntityCsidClidDetail> IncludedMembers { get; set; }

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

3 个答案:

答案 0 :(得分:22)

处理CollectionChanged事件

//注册事件,以便每当集合CollectionChangedMethod方法发生变化时,都会调用

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

创建一个像这样的方法

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
        }
}

答案 1 :(得分:3)

只需注册该集合的CollectionChanged活动即可。它会在您添加或删除项目时引发事件,否则会更改集合的内容。

如果您希望在集合中的项目属性发生变化时收到事件,则需要先确保这些项目为IObservable,然后Subscribe()为各个对象。

答案 2 :(得分:-2)

这就是可观察集合的用途。

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