WPF DataGrid:如何防止按下输入键时自动更改行?

时间:2015-09-21 10:19:05

标签: c# wpf mvvm datagrid keyboard-events

我在我的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参数以供使用。

任何人都可以帮助我吗? 这是最好的方法吗?

任何建议或建议都将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以轻松处理输入按键事件,我已经处理了datagrid输入按键事件,如下代码:

<DataGrid.InputBindings>
         <KeyBinding Key="Enter" Command="{Binding Path=DataContext.HandleEnterKeyCommand, 
                    RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
 </DataGrid.InputBindings>

现在,您可以通过命令在viewmodel中编写逻辑。