我想知道如何在ViewModel中使用MVVM處理KeyDown事件。Mvvm TextBox KeyDown事件
我有一個文本框,當用戶點擊一個不是數字的鍵時,輸入不應該被允許。我通常用代碼來執行它背後是這樣的(不完整的代碼,只是一個簡單的例子):
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
// Determine whether the keystroke is a number from the top of the keyboard.
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
e.Handled = true;
}
}
現在,我想在我的視圖模型用Command莫名其妙地把這個。我是MVVM的新手,我現在只使用Bindings(它工作正常:)),但我不知道如何使用命令...
我的文本框看起來像這樣:
<TextBox Text="{Binding MyField, Mode=TwoWay}"/>
視圖模型:
private string _myfield;
public string MyField{
get { return _myfield; }
set {
_myfield= value;
RaisePropertyChanged(()=>MyField)
}
}
但二傳手纔會被調用,當我離開的文本框+我沒有進入進入關鍵。
可能重複:http://stackoverflow.com/questions/612966/keyboard-events-in-a-wpf-mvvm-application – walther
謝謝。另一個問題:我點擊我的TextBox,這是否也會引發GotFocus事件?我有一個標準值爲0.00的小數文本框。當我點擊文本框時,該值應爲「」(如果值爲0.00,則在文本框中)。我發現UpdateSourceTrigger會在每次鍵入內容時都會引發我的setter,並且我將不得不根據輸入檢查/設置值...無論如何,「KeyDown」正在工作,但GotFocus如何? PS:上面的問題顯示瞭如何在單擊某個鍵時引發事件,但我想處理所有KeyDown事件而不是特殊鍵。 (沒有後面代碼) – Rudi