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.