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