【发布时间】:2018-02-23 17:39:19
【问题描述】:
当我的窗口被加载时,我有一个 ObservableCollection 被填充并且一个 PropertyChanged 事件被添加到每个项目。但是,在初始加载项目之后可以将其添加到 ObservableCollection。我希望能够侦听 ObservableCollection 上的集合更改,检查是否添加了一个项目,然后如果添加了一个事件侦听器。
为此,我希望能够检查是否为每个单独的项目定义了 PropertyChanged 属性,如果没有,则附加一个 PropertyChanged 事件。
这是我的代码:
items.CollectionChanged += (object sender, NotifyCollectionChangedEventArgs e) =>
{
foreach (var item in items.Where(o => o.PropertyChanged == null)) //error here
{
item.PropertyChanged += Item_PropertyChanged;
}
};
但是,我收到一个编译错误:
“ModelBase.PropertyChanged”事件只能出现在 += 或 -= 的左侧
任何想法如何检查一个对象是否定义了其 PropertyChanged 属性事件?
【问题讨论】:
-
您说的是“已定义”,但您的意思可能是“已分配”。请澄清,请参阅下面的答案。