如何为集合中对象的特定属性设置属性更改事件
本文关键字:属性 设置 事件 集合 对象 | 更新日期: 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.
}
}
在大多数情况下,这应该没问题。如果您想要一个目标更窄的调用,那么您可以始终考虑使用自定义事件——只有当您感兴趣的属性发生更改时,才让源对象引发该事件。