【问题标题】:How to assign PropertyChanged event handler to ObservableCollection owner如何将 PropertyChanged 事件处理程序分配给 ObservableCollection 所有者
【发布时间】:2012-09-20 21:59:50
【问题描述】:

我需要在 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 中的字段)。

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

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

谢谢。

【问题讨论】:

  • +1 我也一直这样做,对您在这里得到的任何回复感兴趣。
  • 你能解释一下为什么你不想遍历集合两次吗?这只是一个冗余问题吗?
  • 并不是真正的冗余问题,我只是想看看是否有更优雅的方式。以上工作正常。

标签: c# observablecollection propertychanged


【解决方案1】:
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多