如何将PropertyChanged事件处理程序分配给ObservableCollection所有者

时间:2012-09-20 21:59:50

标签: c# observablecollection propertychanged

我需要在ObservableCollection的所有者中处理ObservableCollection中项目的PropertyChanged事件。必须有一个比以下更优雅的方式:

ObservableCollection(MyViewModel) myViewModels = new ObservableCollection<MyViewModel>();
LoadMyViewModels(myViewModels); // populates the collection
foreach (MyViewModel myViewModel in myViewModels)
{
    myViewModel.PropertyChanged += PropertyChangedEventHandler(MyViewModelPropertyChanged);
}

我想将MyViewModelPropertyChanged事件处理程序传递给LoadMyViewModel,因此我不必遍历集合两次(一次加载和一次事件分配)。

MyViewModelPropertyChanged在UI上反映的包含视图上设置属性(该集合绑定到TreeView,我需要根据项目是否已经选中来启用/禁用UI中的字段。)

如果不是所有引用的帖子,我都会查看最多,但我有点失落。

上面的代码完成了我需要做的事情,但我知道有更好的方法。请引用适当的参考或代码示例。

感谢。

1 个答案:

答案 0 :(得分:0)