Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 当按下回车键时,如何强制更新DataGrid行_Wpf_Datagrid - Fatal编程技术网

Wpf 当按下回车键时,如何强制更新DataGrid行

Wpf 当按下回车键时,如何强制更新DataGrid行,wpf,datagrid,Wpf,Datagrid,我有一个WPFDataGrid绑定到一个observedcollection点。我在viewmodel中有一个处理程序,当在DataGrid中编辑点时更新模型,另一个处理程序在触发CollectionChanged事件时自动向集合添加行,并且args.Action==NotifyCollectionChangedAction.Add 当用户通过单击空行的第一列来添加行时,就会出现我的问题。该行将自动填充,光标将设置为编辑第一列中的值。用户希望能够立即编辑该值并点击return来更新数据网格,但它

我有一个WPF
DataGrid
绑定到一个
observedcollection
点。我在viewmodel中有一个处理程序,当在
DataGrid
中编辑点时更新模型,另一个处理程序在触发
CollectionChanged
事件时自动向集合添加行,并且
args.Action==NotifyCollectionChangedAction.Add

当用户通过单击空行的第一列来添加行时,就会出现我的问题。该行将自动填充,光标将设置为编辑第一列中的值。用户希望能够立即编辑该值并点击return来更新数据网格,但它不起作用。编辑点时激发的处理程序不会激发,因此不会更新模型中的数据。要编辑新行,用户必须先离开,然后重新输入。我的用户不喜欢这样

为了解决这个问题,我在视图中添加了一个
OnPreviewKeyDown
处理程序。我两者都试过了

dataGrid.CommitEdit();


但我仍然无法更新数据网格。任何帮助都将不胜感激。

我在这里找到了解决方案

我只是在每一列上使用了
UpdateSourceTrigger=LostFocus
,这比我想做的要简单得多

dataGrid.CommitEdit(DataGridEditingUnit.Row, true);