2011-05-15 44 views
9
public ObservableCollection<IndividualEntityCsidClidDetail> IncludedMembers { get; set; } 

让说我有IncludedMembers参考我希望在收集资料的添加/删除/编辑要发生的事件。如何获得的ObservableCollection变化

+0

您是否在WPF或WinForms环境中使用集合?你想达到什么目的?如果你在WPF中,绑定可能比事件处理更好。 – miguel 2011-05-15 10:32:08

回答

18

处理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 
     } 
} 
时间
+0

如何处理它? – 2011-05-15 10:17:33

+0

请参阅上面的编辑.. – 2011-05-16 18:45:21

+0

这不会简单地改变includeMembers – 2014-09-23 06:49:58

-1

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

简单地绑定到集合,你是排序!

+1

OP询问如何聆听收藏中的变化。他没有讨论绑定... – zazkapulsk 2015-08-23 10:55:37

2

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

如果你想接收事件时,在收集的内容转移的特性,你需要确保该项目是IObservable第一则Subscribe()各个对象。