Как поддерживать привязку ListBox SelectedItems с MVVM в навигационном приложении
Я делаю приложение WPF, в котором можно перемещаться с помощью пользовательского & quot; Далее & quot; и & quot; Назад & quot; кнопки и команды (т.е. не используяNavigationWindow
). На одном экране у меня естьListBox
который должен поддерживать несколько выборов (используяExtended
Режим). У меня есть модель представления для этого экрана и я храню выбранные элементы как свойство, так как они должны поддерживаться.
Тем не менее, я знаю, чтоSelectedItems
свойствоListBox
только для чтения. Я пытался обойти проблему, используяэто решение здесь, но я не смог принять его в свою реализацию. Я обнаружил, что не могу различить, когда один или несколько элементов отменены, и когда я перемещаюсь между экранами (NotifyCollectionChangedAction.Remove
поднимается в обоих случаях, поскольку технически все выбранные элементы отменяются при удалении от экрана). Мои навигационные команды расположены в отдельной модели представления, которая управляет моделями представления для каждого экрана, поэтому я не могу поставить любую реализацию, связанную с моделью представления, с помощьюListBox
там.
Я нашел несколько других менее изящных решений, но ни одно из них, по-видимому, не обеспечивает двустороннюю связь между моделью представления и представлением.
Любая помощь будет принята с благодарностью. Я могу предоставить часть моего исходного кода, если это поможет понять мою проблему.