【问题标题】:How to set Property Changed Event for a Particular Property of an Object in Collection如何为集合中对象的特定属性设置属性更改事件
【发布时间】:2015-01-06 22:01:25
【问题描述】:

我有一个包含对象的 ObservableCollection。 我的要求是我想为特定的 Property 设置 Property Changed 来触发 Collection Changed 事件。

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

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

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

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

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

【问题讨论】:

    标签: c# events inotifypropertychanged c#-5.0


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 2016-06-20
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多