我有一个OnPreviewKeyDown方法,当按下Enter键时,它执行一个Jumec方法。当用户按下Enter键时,我尝试将焦点移开并执行操作(vm.ProcessSelectedDocumentCommand.Execute(null)),但生成了与该操作相关的错误。当焦点位于控件(如文本框)上时会发生错误,这意味着用户正在进行编辑。这就是为什么我试图将焦点移到其他地方.在这种情况下,移到确定按钮。我还禁用了按钮,以确保用户不会按两次。
如果用户单击OK按钮,这只是执行操作,那么一切都正常。我在这里做错了什么,我如何才能使回车工作更像一个点击?
private void OnPreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter)
{
btnProcess.Focus();
btnProcess.IsEnabled = false;
vm.ProcessSelectedDocumentCommand.Execute(null);
}
}
考虑到它们调用相同的方法,我期望Enter键以与单击相同的方式处理操作。
1条答案
按热度按时间2skhul331#
这似乎是直接向前。将
AcceptsReturn="false"
添加到TextBox,并将IsDefault="True"
添加到Button。然后当你在文本框中按回车键时,按钮会被触发不要忘记删除OnPreviewKeyDown处理程序代码-这是没有必要的