Jak obsługiwać powiązanie ListBox SelectedItems z MVVM w aplikacji nawigacyjnej

Tworzę aplikacje WPF, które można nawigować za pomocą niestandardowych przycisków i poleceń „Dalej” i „Wstecz” (tzn. Nie używaćNavigationWindow). Na jednym ekranie mamListBox który musi obsługiwać wiele wyborów (za pomocąExtended tryb). Mam model widoku tego ekranu i przechowuję wybrane elementy jako własność, ponieważ muszą być utrzymywane.

Wiem jednak, żeSelectedItems własność aListBox jest tylko do odczytu. Próbowałem obejść ten problem za pomocąto rozwiązanie tutaj, ale nie byłem w stanie przyjąć go do mojego wdrożenia. Odkryłem, że nie mogę odróżnić, kiedy jeden lub więcej elementów jest odznaczonych i kiedy nawiguję między ekranami (NotifyCollectionChangedAction.Remove jest podnoszone w obu przypadkach, ponieważ technicznie wszystkie wybrane elementy są odznaczane podczas oddalania się od ekranu). Moje polecenia nawigacyjne znajdują się w osobnym modelu widoku, który zarządza modelami widoku dla każdego ekranu, więc nie mogę umieścić żadnej implementacji związanej z modelem widoku za pomocąListBox tam.

Znalazłem kilka innych mniej eleganckich rozwiązań, ale żaden z nich nie wydaje się wymuszać dwukierunkowego powiązania między modelem widoku a widokiem.

Każda pomoc byłaby bardzo mile widziana. Mogę podać część mojego kodu źródłowego, jeśli pomoże to zrozumieć mój problem.

questionAnswers(9)

yourAnswerToTheQuestion