7

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

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

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

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

任何指针表示赞赏!

4

2 回答 2

25

还有一个答案不知为何消失了。这很好用:

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

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

于 2012-04-18T12:43:23.327 回答
2

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

于 2012-04-18T12:35:57.570 回答