我正在尝试创建一个包含 AutoCompleteBox 的用户控件。我想使用此 AutoCompleteBox 的 SelectedItem 属性来填充其他用户控件,其中包含基于用户选择的项目的信息。为了防止每次用户在下拉列表中的项目之间“导航”时触发 SelectedItem,我创建了一个在 DropDownClosed 事件上执行的 EventToCommand,如下所示:
该命令的类型为: public RelayCommand SelectedItemCommand { get; 私人套装;}
这可以正常工作,除非用户开始输入开头有匹配项的内容,但如果用户继续输入并且不再有匹配项,则 DropDown 关闭并且实际上没有选择任何项目。这给了我一个错误,上面写着:
无法将“System.Windows.RoutedPropertyChangedEventArgs`1[System.Boolean]”类型的对象转换为“MyProject.ViewModels.MyItem”类型
我试图在命令的 Command 方法中为该命令创建一个 try-catch 语句,但即使在我进入该方法之前,该异常似乎就已被触发。
我的问题是:如果不匹配(即 AutoCompleteBox 中没有实际的 SelectedItem),如何防止命令被触发?