Um der nativen WPF-Strukturansicht Unterstützung für Mehrfachauswahl hinzuzufügen, musste ich eine benutzerdefinierte Abhängigkeitseigenschaft hinzufügen, die die ausgewählten Mehrfachelemente speichert. Das funktioniert großartig, bis sich die Gegenstände des Baums zu verändern begannen.TreeView Items geändertes Ereignis
Zum Beispiel im ersten Baum gibt es ein Element A. Ich habe es ausgewählt, es wird in MultiSelectedItems
Liste gespeichert. Dann entfernte ich Element A und fügte Element B hinzu. (Über ViewModel ObservableCollection
Bindung)
Ich muss einen Weg finden, um Element A aus MultiSelectedItems
Liste zu entfernen, wenn dies passiert.
Ich kann kein Ereignis dafür finden. Das nächste Ereignis, das ich erhalte, ist ItemContainerGenerator.ItemsChanged
Ereignis, aber dieses Ereignis wird nur für Stammebenenknoten ausgelöst (feuert nicht für seine untergeordneten Hierarchieobjekte).
Wie Sie bereits erwähnt haben, ist dies in keiner Weise eine allgemeine Lösung und hat viele nicht triviale Fehlerfälle. Ich empfehle dringend, meine frühere Antwort zu folgen. –
@AndrewHanlon Macht es Ihnen etwas aus, um ein besseres Verständnis davon zu bekommen? – Steve