将键盘快捷方式绑定到 WPF 中视图模型中的命令

本文关键字:视图 模型 命令 WPF 键盘 快捷方式 绑定 | 更新日期: 2023-09-27 18:31:26

我有一个应用程序,其中有一个带有工具栏的UserControl。此工具栏具有一个按钮Execute该按钮又将其命令绑定到视图模型作为属性公开的ICommand派生类。

<Button Grid.Row="0" Command="{Binding ExecuteCommand}">Execute</Button>

现在,我也想将其绑定到键盘快捷键(F5)。这需要在UserControl上下文中绑定,因为仅当此用户控件当前可见时,它才适用。

另一种选择是将其绑定到实际包含要执行的文本的文本框的KeyDown,但是当涉及到如何将事件从控件路由到视图模型中的命令时,我真的很不稳定,而不会在用户控件的代码隐藏中进行真正丑陋的黑客攻击。

任何指示都值得赞赏!

将键盘快捷方式绑定到 WPF 中视图模型中的命令

还有另一个答案由于某种原因消失了。这工作正常:

<UserControl.InputBindings>
  <KeyBinding Key="F5" Command="{Binding ExecuteCommand}" />
</UserControl.InputBindings>

如果可能的话,我想把功劳归功于那个人。请再次出现:)

Afaik,没有办法直接绑定到按键,但有一些解决方法。看起来其他人也遇到了这个问题,你看过这篇文章吗?我的另一个建议是查看附加的命令。