Я пытаюсь создать UserControl, который содержит AutoCompleteBox. Я хочу использовать свойство SelectedItem этого AutoCompleteBox, чтобы заполнить другие элементы управления UserControl информацией, основанной на том, какой элемент выбран пользователем.
Чтобы предотвратить срабатывание SelectedItem каждый раз, когда пользователь «перемещается» между элементами в раскрывающемся меню, я создал EventToCommand, который выполняется для события DropDownClosed следующим образом:
Команда имеет тип:
public RelayCommand SelectedItemCommand {get; приватный набор; }
Это прекрасно работает, за исключением случая, когда пользователь начинает печатать что-то, у которого есть совпадение в начале, но если пользователь продолжает печатать, и соответствия больше нет, тогда DropDown закрывается, и никакой элемент фактически не выбирается. Это дает мне ошибку, которая говорит:
Невозможно привести объект типа 'System.Windows.RoutedPropertyChangedEventArgs`1 [System.Boolean]' к типу 'MyProject.ViewModels.MyItem'
Я попытался сделать оператор try-catch в методе Command для команды, но, похоже, исключение сработало еще до того, как я вхожу в этот метод.
Мой вопрос:
Как я могу предотвратить запуск команды, если нет совпадения (то есть, нет фактического SelectedItem в AutoCompleteBox)?