2011-01-22 34 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是指持有在視圖中使用視圖模型引用靜態類。

相關問題