C#中的子-父属性更改
本文关键字:属性 | 更新日期: 2023-09-27 18:26:24
我在C#中的一个类(例如ParentClass
)中有一个属性,它与另一个类类型(例如ChildClass
)的ObservableCollection
绑定。我的问题是如何通过使用ParentClass
属性来更改ChildClass
属性的值,以便触发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
。每当我更改pIn.UnRead
的属性值时,我都希望触发RaisePropertyChanged("ParentProperty")
。
ObservableCollection<T>
不提供其维护的集合的一个或多个properties
发生更改时的通知,它只提供when items get added, removed, or when the whole list is refreshed
的通知。
如果您想知道集合中的property
何时更改,您需要自己实现一个通知。这样的机制可以在INotifyPropertyChanged和/或EventHandler的帮助下实现。