KeyBinding - RelayCommand 位于 xaml.cs 中
我将文本框绑定到 ViewModel 类。但是,按钮命令(它是一个 RelayCommand,从 ICommand 扩展)我绑定到 UsersView.xaml.cs。在 UsersView.xaml.cs 构造函数中,我有这个:
DataContext = UserVM;
btnAdd.DataContext = this;
这就是我绑定按钮的方式 - 它的工作原理。
<Button Command="{Binding Add}" Content="Add user" />
现在,我想为该按钮添加 KeyGesture,但我无法为 InputBindings 设置 DataContext,并且编译器无法在 UsersVM 类中找到此 Add 命令。
<UsersView.InputBindings>
<KeyBinding Key="F10" Command="{Binding Add}" />
</UsersView.InputBindings>
I bind my textboxes to ViewModel class. But, button command (it's a RelayCommand, extended from ICommand) I bind to UsersView.xaml.cs. In UsersView.xaml.cs constructor I have this:
DataContext = UserVM;
btnAdd.DataContext = this;
This is how I bind button - it works.
<Button Command="{Binding Add}" Content="Add user" />
Now, I want to add KeyGesture for that button but I can't set DataContext for InputBindings and compiler can't find this Add command in UsersVM class.
<UsersView.InputBindings>
<KeyBinding Key="F10" Command="{Binding Add}" />
</UsersView.InputBindings>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在窗口上有这个,这是我使用的代码...
请注意,我设置了窗口的
x.Name
。然后在我的 KeyBinding 中,我这样做了...AddPersonCommand
是我的 ViewModel 中的 ICommand。I had this on a Window and this is the code I used...
Notice that I set the
x.Name
of the Window. Then in my KeyBinding, I did this...The
AddPersonCommand
is my ICommand from my ViewModel.