Ich habe eine Elternklasse (Umsetzung INotifyPropertyChanged
), die eine Eigenschaft hat, die eine Bindungsliste von (ChildClass
) ist. Die ChildClass
implementiert auch INotifyPropertyChanged
.INotifyPropertyChanged in Kind-Bindungslisten
Wenn ich etwas an den Parent binden, spiegelt es richtig Änderungen an den Parent Eigenschaften - mit Ausnahme von Änderungen an:
- Die Anzahl der Elemente in der
BindingList(of ChildClass)
[als Folge der das Hinzufügen oder Löschen von Elementen In der Liste]. OR - Eine Änderung in einer Eigenschaft eines Elements in der
BindingList(of ChildClass)
Wenn ich binden etwas direkt zu einem Element von ChildClass
(das heißt ein Element in der BindingList(Of ChildClass)
) - geht das auch.
Wie wird dies verkabelt, damit # 1 und # 2 in gebundenen Objekten entsprechend reflektiert werden?
Hier ist die Vb-Version von Pauls große Antwort. Ohne das Ereignis List_Changed
wurden Änderungen an der BindingList
nicht korrekt in der Kette in einem verschachtelten Geschäftsobjekt weitergegeben. Damit sind sie!
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
Zeigen Sie uns bitte einen Code. – jlvaquero