Представьте себе: у вас есть окно «Мастер-ребенок», состоящее из списка элементов (главное окно) и набора элементов управления, где вы можете редактировать текущий выбранный элемент (дочернее окно). Дочернее окно имеет кнопки «Применить» и «Отмена».
Пользователь начинает редактирование значений. Затем он меняет выбор, прежде чем нажать кнопку «Применить».
Ваше приложение отображает сообщение «Применить изменения к текущему элементу?» С кнопками «Да», «Нет» и «Отмена».
Если пользователь нажимает «Отмена», то попытка изменить текущий выбор не удастся.
Элемент «CurrentSelection» привязан к данным.
Я думал, что смогу разобраться с этим в части "setter" свойства CurrentSelection
. Если пользователь выбирает «Отмена», я просто сохраняю элемент CurrentSelection
как есть и запускаю событие уведомления PropertyChanged
, чтобы сообщить форме об обновлении до старого выбранного элемента. Элемент управления игнорирует это событие уведомления. (Что имеет смысл, Control говорит: «Я знаю, что текущий выбор изменился. Я просто изменил его!»)
Есть идеи, как это исправить? Таким образом, элемент управления пытается изменить границу SelectedItem
, и я хочу сказать ему: «Нет, вы не можете изменить этот выбранный элемент прямо сейчас».