Как отменить выбор пользователя в базе данных WPF ListBox? Свойство source установлено правильно, но выбор ListBox не синхронизирован.
У меня есть приложение MVVM, которое должно отменять выбор пользователя в ListBox WPF, если определенные условия проверки не срабатывают. Проверка активируется выбором в ListBox, а не кнопкой "Отправить".
Свойство ListBox.SelectedItem
привязано к свойству ViewModel.CurrentDocument
. Если проверка не удалась, средство настройки для свойства модели вида выходит из строя без изменения свойства. Таким образом, свойство, к которому привязано ListBox.SelectedItem
, не изменяется.
Если это произойдет, средство определения свойств модели представления вызывает событие PropertyChanged до его выхода, которое, как я предполагал, будет достаточным для reset ListBox для старого выбора. Но это не работает - ListBox по-прежнему показывает новый пользовательский выбор. Мне нужно переопределить этот выбор и вернуть его в синхронизацию с исходным свойством.
На всякий случай, что неясно, вот пример: ListBox имеет два элемента: Document1 и Document2; Выбран Document1. Пользователь выбирает Document2, но Document1 не может быть проверен. Свойству ViewModel.CurrentDocument
по-прежнему установлено значение Document1, но ListBox показывает, что выбран Document2. Мне нужно вернуть список ListBox в Document1.
Вот моя привязка ListBox:
<ListBox
ItemsSource="{Binding Path=SearchResults, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding Path=CurrentDocument, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
Я попытался использовать обратный вызов из ViewModel (как событие) для представления (который подписывается на событие), чтобы вернуть свойство SelectedItem в старый выбор. Я передаю старый документ с событием, и он является правильным (старый выбор), но выбор ListBox не изменяется.
Итак, как мне получить выбор ListBox в синхронизации с свойством модели представления, которому привязано свойство SelectedItem
? Благодарим за помощь.