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")

C#中的子-父属性更改

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

如果您想知道集合中的property何时更改,您需要自己实现一个通知。这样的机制可以在INotifyPropertyChanged和/或EventHandler的帮助下实现。