WPF ListView Удалить элемент IsSelected MVVM - PullRequest
0 голосов
/ 16 марта 2011

У меня есть ListView, который связан с наблюдаемой коллекцией некоторого объекта. При выборе и элементе в ListView отображается форма. Мой бизнес-пример таков, когда пользователь переключается с одного элемента на другой в ListView, и если есть какие-либо несохраненные изменения, пользователю следует предложить Да / Нет / Отмена. Если пользователь нажимает Нет, выбранный элемент должен быть удален из списка.

У меня есть ViewModel для ListViewItem, и внутри свойства IsSelected я запрашиваю пользователя. Теперь, когда я удаляю элемент из Наблюдаемой коллекции, IsSelected = True для следующего выбора, я получаю ошибку ..

"Коллекция была изменена; операция перечисления может не выполняться" ..

1 Ответ

1 голос
/ 16 марта 2011

Я почти уверен, что у вас возникли проблемы, потому что ваша программа удаляет выбранный в данный момент элемент из коллекции одновременно с его выбором.Нажатие на элемент меняет SelectedItem для ListView, и вы одновременно удаляете элемент, не устанавливая новое значение для SelectedItem.

.свойство в модели представления окна и привязать к нему свойство ListView s SelectedItem.Когда значение этого свойства изменяется, вы можете запросить пользователя, а затем установить SelectedItem на соответствующее значение (т. Е. На то, что выбранный элемент должен быть после удаления выбранного в данный момент элемента, или ноль, если коллекция будет пустой) до вы удаляете его из базовой коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...