我在我的WPF项目中使用MVVM模式,现在我正面临着提到标题的问题。我发现一些建议是使用KeyEventArgs.Handled = true;
这样:
private void PreviewKeyDown(object sender, KeyEventArgs e)
{
if ((e.Key.Equals(Key.Enter)) || (e.Key.Equals(Key.Return)))
{
e.Handled = true;
}
}
但是我想在ViewModel中编写它而不是View的代码隐藏。这个example显示了使用MVVM模式处理关键事件的方法,但我不知道如何传递KeyEventArgs
参数以供使用。
任何人都可以帮助我吗? 这是最好的方法吗?
任何建议或建议都将不胜感激。
提前致谢。
答案 0 :(得分:0)
您可以轻松处理输入按键事件,我已经处理了datagrid输入按键事件,如下代码:
<DataGrid.InputBindings>
<KeyBinding Key="Enter" Command="{Binding Path=DataContext.HandleEnterKeyCommand,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
</DataGrid.InputBindings>
现在,您可以通过命令在viewmodel中编写逻辑。