Wie binden Sie an die SelectedItem-Eigenschaft des WPF-TreeView?
Habe ich angepasst, das TreeView-Steuerelement-Beispiel Projekt hier für die Verwendung mit Entity-Framework-Objekte. Es funktioniert wunderbar, aber wie viele andere versuchen, update-Sammlungen oder Eigenschaften auf Ihre ParentViewModels basiert SelectedItem
änderungen, auch ich bin nicht in der Lage, um die Lücke des Verstehens.
Arbeite ich in MVVM, und möchte, dass meine code-behind-frei von jeglicher Unordnung. Als Anfänger, wie ich die Sauberkeit der Umsetzung PropertyChanged
Benachrichtigungen, doch da ist keine inhärente "SelectedItem" - Eigenschaft zum binden auf der TreeView
bin ich nicht zu erhöhen meine PropertyChanged-Ereignis, als ich normalerweise würde, mit ListBox
.
Ich habe auch eine SelectedItem-Eigenschaft (, die eigentlich erfolgreich erfasst das Objekt, in dem isSelected = true) auf meine ChildViewModel (siehe H. B. ' s Antwort auf diese Frage). Ich habe auch eine SelectedItem-Typ ChildViewModel auf meine ParentViewModel, die gebunden ist an meiner Ansicht (siehe @Martin Liversage post hier). Ich Schaffe es nicht, Sie zu synchronisieren.
Bitte helfen Sie mir zu verstehen, wie die Kommunikation der SelectedItem
Eigentum meines ChildViewModel zu meinem ParentViewModel. Ich binden nicht mein TreeView zu einem CollectionView
, so bin ich nicht in der Lage, um die CurrentItem
in der Sammlung ansehen.
Mein viewmodel-Sammlungen bin ich den Umgang mit sehr Abfrage-schwer, also ich hab nicht im Lieferumfang enthalten keinerlei code für jetzt. Bitte lassen Sie mich wissen, was notwendig ist, für Klarheit.
InformationsquelleAutor Rachael | 2013-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, zumindest fangen Sie an, gewöhnen sich an Ihre tägliche MVVM-WTF... Warum muss ich die post auf SO für Sachen, die so einfach wie diese". Eines Tages, Sie werden es lieben, MVVM, das verspreche ich 😉
Dass gesagt wird: Wie Sie wissen, ist die TreeView unterstützt nicht die Synchronisierung der
SelectedItem
Eigenschaft. Es existiert zwar, aber es ist readonly. Was Sie tun möchten, ist zu erweitern, das Verhalten des TreeView-synchronisieren Sie das ausgewählte Element mit einer Eigenschaft auf, es ist ViewModel.Dieses problem Beschreibung Punkte, die Sie in die richtige Richtung: Verhalten. Verhalten (oder, um genau zu sein, System.Windows.Die Interaktivität.Verhalten<>s) ermöglichen Ihnen die Erweiterung der Funktionalität von
DependencyObject
. (Gute Einführung)Einen Ansatz zu synchronisieren TreeView mit einem ausgewählten Artikel über Verhaltensweisen, kann hier gefunden werden:
SO Thread
Sollte dies für Sie bereits. Sie können einfach kopieren und fügen Sie den code von Steve GreatRex und gehen für Sie. Bitte äußern Sie sich, wenn Sie Hilfe benötigen mit dem Ansatz. Spaß haben, lernen!
Kein problem, hoffe es hilft!
InformationsquelleAutor Marc