将键盘快捷方式绑定到 WPF 中视图模型中的命令
本文关键字:视图 模型 命令 WPF 键盘 快捷方式 绑定 | 更新日期: 2023-09-27 18:31:26
我有一个应用程序,其中有一个带有工具栏的UserControl
。此工具栏具有一个按钮Execute
该按钮又将其命令绑定到视图模型作为属性公开的ICommand
派生类。
<Button Grid.Row="0" Command="{Binding ExecuteCommand}">Execute</Button>
现在,我也想将其绑定到键盘快捷键(F5
)。这需要在UserControl
上下文中绑定,因为仅当此用户控件当前可见时,它才适用。
另一种选择是将其绑定到实际包含要执行的文本的文本框的KeyDown
,但是当涉及到如何将事件从控件路由到视图模型中的命令时,我真的很不稳定,而不会在用户控件的代码隐藏中进行真正丑陋的黑客攻击。
任何指示都值得赞赏!
还有另一个答案由于某种原因消失了。这工作正常:
<UserControl.InputBindings>
<KeyBinding Key="F5" Command="{Binding ExecuteCommand}" />
</UserControl.InputBindings>
如果可能的话,我想把功劳归功于那个人。请再次出现:)
Afaik,没有办法直接绑定到按键,但有一些解决方法。看起来其他人也遇到了这个问题,你看过这篇文章吗?我的另一个建议是查看附加的命令。