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

时间:2014-11-10 14:56:22

标签: c# events inotifypropertychanged c#-5.0

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

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

foreach (INotifyPropertyChanged prop in _baseColl)
{
 prop .PropertyChanged += prop_PropertyChanged;
}

prop_PropertyChanged()
{
//Will Refresh My Collection.
}

这种情况将调用该Object中的所有属性。但我不想这样。

P.S:我也知道我们可以触发CollectionChanged By" Add"," Remove"," Move"等等。但我想要另一种解决方案。

1 个答案:

答案 0 :(得分:2)

如果您正在处理PropertyChanged,您所能做的就是检查“PropertyName”;

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

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