Мы используем Wpf Combobox, чтобы позволить пользователю делать следующие вещи:
1) выберите элементы, введя первые несколько символов
2) автоматическое заполнение записи путем фильтрации списка
3) предложение первого элемента, совпадающего с буквами, набранными в качестве выбранного элемента
Задача - обработать сценарий, когда пользователь вводит символы, которых НЕ в списке. Это должно означать, что пользователь либо совершил ошибку, либо хочет ввести новый элемент.
Combobox привязан к пользовательским типам, и у них есть правила проверки, связанные со свойством, которое заполняется выбором. Мы не можем понять, как определить, когда пользователь ввел запись NOT IN THE LIST, и присвоить привязанному свойству недопустимое значение, которое вызовет проверку.
Когда пользователь вводит строку символов, которые не представляют элемент в списке, выбранный элемент становится пустым. Поскольку selecteditem имеет значение NULL, путь свойства, связанный с объектом datacontext формы, не может быть идентифицирован WPF, и поэтому привязка не выполняется. Бизнес-объект затем сохраняет любое предыдущее значение и не получает новое значение.