我在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
被触发。
答案 0 :(得分:0)
ObservableCollection<T>
未提供有关其维护的一个或多个properties
集合何时更改的通知,它仅提供when items get added, removed, or when the whole list is refreshed
的通知。
如果您想知道收藏集中的property
何时发生变化,您需要自行实施通知。这种机制可以借助INotifyPropertyChanged和/或EventHandler实现。