CollectionChanged样本

Who*_*nja 5 wpf mvvm mvvm-light

有人可以指出实现CollectionChanged的示例.我正在使用wpf mvvm light.我试着谷歌,没找到任何好的东西.

Arx*_*sos 9

public ObservableCollection<string> Names { get; set; }

public ViewModel()
{
   names = new ObservableCollection<string>();
   Names.CollectionChanged += this.OnCollectionChanged;
}

void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
   //Get the sender observable collection
   ObservableCollection<string> obsSender = sender as ObservableCollection<string>;

   List<string> editedOrRemovedItems = new List<string>();
   foreach(string newItem in e.NewItems)
   {
       editedOrRemovedItems.Add(newItem);
   }

   foreach(string oldItem in e.OldItems)
   {
       editedOrRemovedItems.Add(oldItem);
   }

   //Get the action which raised the collection changed event
   NotifyCollectionChangedAction action = e.Action;
}
Run Code Online (Sandbox Code Playgroud)

有关NotifyCollectionChangedEventArgs的更多信息,请查看此处.

编辑:因为您需要添加/删除项目的列表,我修改了示例代码.