У меня есть родительский класс (реализация INotifyPropertyChanged
), у которого есть Свойство, которое является списком привязки (ChildClass
). ChildClass
также реализует INotifyPropertyChanged
.INotifyPropertyChanged в дочерних привязных списках
Если я связать что-то к ParentClass, он правильно отражает изменения в свойства ParentClass - за исключением изменений в:
- Число элементов в
BindingList(of ChildClass)
[в результате добавления или удаления элементов в списке]. ИЛИ - Изменение в свойстве элемента в
BindingList(of ChildClass)
Если я связать что-то непосредственно к пункту ChildClass
(то есть пункт, в BindingList(Of ChildClass)
) - что тоже работает.
Как подключить это так, чтобы # 1 и # 2 были соответствующим образом отражены в связанных объектах?
Вот версия Vb отличного ответа Павла. Без события List_Changed
изменения в BindingList
не были правильно распространены по цепочке во вложенном бизнес-объекте. С этим они!
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private WithEvents m_children As IBindingList
Public Sub NotifyPropertyChanged(<CallerMemberName()> Optional ByVal propertyName As String = Nothing)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
Public Property Children As IBindingList
Get
Return m_children
End Get
Set
m_children = Value
NotifyPropertyChanged()
End Set
End Property
Private Sub m_children_ListChanged(sender As Object, e As ListChangedEventArgs) Handles m_children.ListChanged
NotifyPropertyChanged(NameOf(Children))
End Sub
Покажите нам, пожалуйста, код. – jlvaquero