如何为集合中对象的特定属性设置属性更改事件

本文关键字:属性 设置 事件 集合 对象 | 更新日期: 2023-09-27 18:29:49

我有一个ObservableCollection,它有对象。我的要求是,我想为特定的属性设置Property Changed,以触发Collection Changed事件。

我可以为对象设置属性更改,如:

foreach (INotifyPropertyChanged prop in _baseColl)
{
 prop .PropertyChanged += prop_PropertyChanged;
}
prop_PropertyChanged()
{
//Will Refresh My Collection.
}

在这种情况下,它将被调用用于该对象中的所有属性。但我不希望这样。

p.S:我也知道我们可以通过"添加"、"删除"、"移动"等触发CollectionChanged。但我想要另一个解决方案。

如何为集合中对象的特定属性设置属性更改事件

如果处理PropertyChanged,您所能做的就是检查"PropertyName";

prop_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "TheProperty")
    {
        //Will Refresh My Collection.
    }
}

在大多数情况下,这应该没问题。如果您想要一个目标更窄的调用,那么您可以始终考虑使用自定义事件——只有当您感兴趣的属性发生更改时,才让源对象引发该事件。