2011-01-22 60 views
1

我有用MVVM Light构建的Silverlkight 4应用程序。我有不同的视图,按钮上的按钮绑定到视图模型中的命令。使用键盘上的Enter键以及鼠标单击将按钮绑定到命令

一切工作正常,当你点击一个按钮,该命令触发和任何被称为作品。

所有我想改变的是,而不是用户必须使用鼠标来按下按钮来调用命令我希望他们可以选择按下键盘上的返回。

简单我以为但目前我卡住了,找不到任何有关如何完成此任务的信息。请任何想法。

回答

0

感谢您的回复Vixen。我可以看到这将如何工作。我已经使用后面的代码对它进行了排序。

在xaml中,我将一个keydown事件添加到控件的属性中,在我的情况下,它是一个网格,但可以是一个列表框,文本框或其他任何东西。

然后在后面的代码我加

private void IfEnterIsPressed(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter) 
    { 
     var vm = DataContext as ViewModel; if (vm != null) vm.MyCommand.Execute(null); 
    }    
} 

这为我工作

+0

酷。实质上,我在答案中提出的建议:)干杯 – Madeleine 2011-01-24 12:16:27

0

为什么不在控件上添加KeyUp事件 - 并在后面的代码中处理“Enter”键以在视图模型中触发事件?

EG:

在XAML:

......... KeyUp="Control_KeyUp" /> 

后面的代码:

private void Control_KeyUp(object sender, System.Windows.Input.KeyEventArgs e) 
    { 
     if(e.Key == System.Windows.Input.Key.Enter) 
     { 
      GlobalViewModelLocator.ViewModel.FireControlCommand(..); 
     } 
    } 

凡GlobalViewModelLocator是指持有在视图中使用视图模型引用静态类。

相关问题