wpf - CollectionChanged 样本

标签 wpf mvvm mvvm-light

有人可以指出实现 CollectionChanged 的​​示例。我正在使用 wpf mvvm 灯。我试图谷歌,没有找到任何足够好的东西。

最佳答案

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

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

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

关于wpf - CollectionChanged 样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587448/

相关文章:

wpf - Interactivity.Behavior<T> 与附加属性

c# - WPF 获取组合框选定的文本(MVVM)

c# - 将按钮命令绑定(bind)到不同的 ViewModel

c# - MVVM Light - 枢轴控制

c# - NavigateCommand 只调用一次

c# - 缓冲时播放视频 : relating buffered bytes to buffered duration

c# - PngBitmapDecoder 流问题

wpf - XAML 智能感知不适用于引用的程序集资源

c# - 从文本框更改为组合框

c# - 带有 MVVMLight 可移植库的两个位置的“System.ComponentModel.INotifyPropertyChanging”