C#中的子父级属性更改

时间:2013-08-05 11:15:13

标签: c# observablecollection inotifypropertychanged

我在C#中的某个类(例如ParentClass)中有一个属性,该属性与另一个类的ObservableCollection绑定(例如ChildClass)。我的问题是如何使用ChildClass属性更改ParentClass属性的值,以便RaisePropertyChanged("ParentProperty")被触发?

我使用这个编码:

foreach (var pIn in ParentProperty.Where(ms => ms.Name == onNameUpdateObj.Name && ms.UnRead == true))
{
    if (pIn != null)
    {
         pIn.UnRead = false;
    }
}

ParentProperty是与ObservableCollection<ChildClass>绑定的属性,ChildClass包含属性UnRead。当我更改UnRead RaisePropertyChanged("ParentProperty")的值时,返回null。每当我更改RaisePropertyChanged("ParentProperty")的属性值时,我都希望pIn.UnRead被触发。

1 个答案:

答案 0 :(得分:0)

ObservableCollection<T>未提供有关其维护的一个或多个properties集合何时更改的通知,它仅提供when items get added, removed, or when the whole list is refreshed的通知。

如果您想知道收藏集中的property何时发生变化,您需要自行实施通知。这种机制可以借助INotifyPropertyChanged和/或EventHandler实现。