1

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

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

我想将 MyViewModelPropertyChanged 事件处理程序传递给 LoadMyViewModels,这样我就不必遍历集合两次(一次在加载时,一次在事件分配时)。

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

如果不是所有引用的帖子,我已经看过最多,但我有点迷茫。

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

谢谢。

4

1 回答 1

0

ABindingList可以给你你需要的...

BindingList在其项目实施时中继项目更改通知INotifyPropertyChanged

于 2013-01-22T06:06:13.863 回答