読者です 読者をやめる 読者になる 読者になる

替え玉バリカタでお願いします

お仕事と、お仕事そうでお仕事じゃない、少しお仕事な備忘など。

エンターキー押下を検知する

テキストボックスでエンターキーを押したときに、ViewModelの"hogehogeCommand"を動作させたいときなどに。
前提としては既にhogehogeボタンがViewにバインドされていて、ボタン押せば良いんだけどショートカットとして扱いたいなんて時。
「ボタン押さずともエンターキーでもいいよね?」ってのは普通にあることで。

xaml

<StackPanel>
  <TextBlock Width="300" Height="20">
    Type some text into the TextBox and press the Enter key.
  </TextBlock>
  <TextBox Width="300" Height="30" Name="textBox1"
           KeyDown="textBox1_OnKeyDown"/>
  <TextBlock Width="300" Height="100" Name="textBlock1"/>
</StackPanel>

コードビハインド

public partial class MainView
{
	public MainView
	{
		InitializeComponent(ManiViewModel vm);
		this.DataContext = vm;
	}
	private void textBox1_OnKeyDown(object sender, KeyEventArgs e)
	{
		if (e.Key == Key.Return)
		{
			var vm = this.DataContext as MainViewModel;
			if (vm != null)
			{
				vm.hogehogeCommand.Execute();
			}
		}
	}
}

参考:
How to: Detect When the Enter Key Pressed

広告を非表示にする