WPF DataGrid窃取回车从stringbuilder返回

时间:2017-03-22 10:04:30

标签: c# wpf mvvm datagrid

我的ViewModel中有一个侦听器可以触发击键。如果一秒钟内有超过10次击键,则表示它来自刷卡阅读器。

滑动阅读器可以是多行,外部库可以根据新行的位置工作。

此代码将输入的滑动数据的一部分拆分为单独的实体,然后将其添加到DataGrid,然后用户可以双击打开弹出窗口的行,以便用户可以编辑详细信息。

问题是当你这样做时,重点转移到DataGridCell,然后当刷新新卡时,我假设DataGridCell正在消耗/处理这些回车,因为在此之后我的ViewModel中的字符串显示相同的数据但没有回车,然后抛出异常。

有什么方法可以阻止datagrid使用/处理返回键,同时仍然允许用户选择行,然后我的viewmodel再次获取这些回车符?

1 个答案:

答案 0 :(得分:1)

想想我找到了一个有效的解决方案。在我的代码隐藏中,我处理DataGrid_OnKeyUp事件并执行以下操作:

private void DataGrid_OnKeyUp(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        TextCompositionManager.StartComposition(new TextComposition(InputManager.Current, this, Environment.NewLine));
    }
}

这会检查密钥是否为返回密钥,然后有效地将Environment.NewLine发送到Window,它现在可以正常工作,因为外部库会检查\ r和\ r \ ñ