检查按下的 Enter 按钮

Checking for pressed Enter button

我的 Viewmodel 中已经有一堆 DelegateCommand。我想在某些特定的文本框上实施 KeyDown/KeyUp 事件。我想要的基本上是当用户按下 Enter 按钮时,DelegateCommand 将执行包含的代码。我需要做什么才能实现这一目标?

所以玩了之后,我找到了解决方法..

private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        if (e.Key == VirtualKey.Enter)
        {
            additem_button.Focus(FocusState.Pointer);
        }
    }
//FocusState.Pointer as if the button was clicked by the user..

但这只适用于 PC。在手机上,它只会关闭键盘。

编辑 1

看来我找到了另一个可以与 MVVM 一起使用的解决方案:D

private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        if (e.Key == VirtualKey.Enter)
        {
            additem_button.Command.Execute("");
            e.Handled = true;
        }
    }
// button.Command.Execute("your parameter"); because on my button, the
// command has been binded to a Delegate Command inside the VM :D

这将适用于 PC 和手机..