So unterstützen Sie die Bindung von ListBox SelectedItems mit MVVM in einer navigierbaren Anwendung

Ich erstelle eine WPF-Anwendung, die über benutzerdefinierte Schaltflächen und Befehle "Weiter" und "Zurück" navigierbar ist (d. H. Ohne aNavigationWindow). Auf einem Bildschirm habe ich eineListBox das muss mehrere Auswahlen unterstützen (mit derExtended Modus). Ich habe ein Ansichtsmodell für diesen Bildschirm und speichere die ausgewählten Elemente als Eigenschaft, da sie verwaltet werden müssen.

Mir ist jedoch bewusst, dass dieSelectedItems Eigentum von aListBox ist schreibgeschützt. Ich habe versucht, das Problem mit zu umgehenDiese Lösung hier, aber ich konnte es nicht in meine Implementierung übernehmen. Ich habe festgestellt, dass ich nicht unterscheiden kann, wann ein oder mehrere Elemente deaktiviert sind und wann ich zwischen Bildschirmen navigiere (NotifyCollectionChangedAction.Remove wird in beiden Fällen ausgelöst, da technisch alle ausgewählten Elemente bei der Navigation vom Bildschirm entfernt abgewählt werden. Meine Navigationsbefehle befinden sich in einem separaten Ansichtsmodell, in dem die Ansichtsmodelle für jeden Bildschirm verwaltet werden. Daher kann ich mit dem keine Implementierung in Bezug auf das Ansichtsmodell vornehmenListBox da drin.

Ich habe einige andere weniger elegante Lösungen gefunden, aber keine davon scheint eine wechselseitige Bindung zwischen dem Ansichtsmodell und der Ansicht zu erzwingen.

Jede Hilfe wäre sehr dankbar. Ich kann einen Teil meines Quellcodes bereitstellen, wenn dies zum Verständnis meines Problems beitragen würde.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage