ViewModel で MVVM を使用して KeyDown イベントを処理する方法を知りたいです。
TextBox があり、ユーザーが数字ではないキーを押すと、入力が許可されません。私は通常、このようなコードビハインドでそれを行います(完全なコードではなく、簡単な例です):
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;
}
}
今、私はコマンドを使用して ViewModel にこれを何らかの形で配置したいと考えています。私はMVVMが初めてで、現在バインディングのみを使用しています(これは正常に機能します:))が、コマンドの使用方法がまったくわかりません...
私の TextBox は次のようになります。
<TextBox Text="{Binding MyField, Mode=TwoWay}"/>
ビューモデル:
private string _myfield;
public string MyField{
get { return _myfield; }
set {
_myfield= value;
RaisePropertyChanged( ()=>MyField)
}
}
しかし、セッターは呼び出されるだけで、TextBoxを離れると入力されたキーにアクセスできません。