我的ViewModel中有一个侦听器可以触发击键。如果一秒钟内有超过10次击键,则表示它来自刷卡阅读器。
滑动阅读器可以是多行,外部库可以根据新行的位置工作。
此代码将输入的滑动数据的一部分拆分为单独的实体,然后将其添加到DataGrid,然后用户可以双击打开弹出窗口的行,以便用户可以编辑详细信息。
问题是当你这样做时,重点转移到DataGridCell,然后当刷新新卡时,我假设DataGridCell正在消耗/处理这些回车,因为在此之后我的ViewModel中的字符串显示相同的数据但没有回车,然后抛出异常。
有什么方法可以阻止datagrid使用/处理返回键,同时仍然允许用户选择行,然后我的viewmodel再次获取这些回车符?
答案 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 \ ñ