Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
C# 我如何知道单元格在datagrid上提交更改后更改的值_C#_Wpf_Datagrid_Wpfdatagrid - Fatal编程技术网

C# 我如何知道单元格在datagrid上提交更改后更改的值

C# 我如何知道单元格在datagrid上提交更改后更改的值,c#,wpf,datagrid,wpfdatagrid,C#,Wpf,Datagrid,Wpfdatagrid,我的问题是,实际上我需要知道是否datagrid行上的某个特定单元格发生了更改,以便用默认值自动填充同一行的其他字段 我尝试使用RowEditEnding事件。但是这个事件是在提交更改之前触发的,我需要在提交更改之后触发一个事件来获取特定单元格的新值 问题是: 如何在单元格失去焦点后立即知道单元格的值?看起来所有单元格和行的*EditEnding事件都是在提交更改之前引发的(事实上,这些事件提供了最后一次取消编辑的机会) 如果您可以等到用户编辑完整行,最可靠的解决方案可能是让您的行对象实现IEd

我的问题是,实际上我需要知道是否datagrid行上的某个特定单元格发生了更改,以便用默认值自动填充同一行的其他字段

我尝试使用
RowEditEnding
事件。但是这个事件是在提交更改之前触发的,我需要在提交更改之后触发一个事件来获取特定单元格的新值

问题是:


如何在单元格失去焦点后立即知道单元格的值?

看起来所有单元格和行的
*EditEnding
事件都是在提交更改之前引发的(事实上,这些事件提供了最后一次取消编辑的机会)

如果您可以等到用户编辑完整行,最可靠的解决方案可能是让您的行对象实现
IEditableObject
,并让它们在调用
EndEdit
时触发事件。编辑完成后,网格应根据编辑是取消还是提交调用
CancelEdit
EndEdit
。但是,请注意,只有当用户编辑完整行时才会调用该函数;当用户完成编辑单元格时,不会通知您

如果在添加新行时填写默认值,并且该行是通过“新项目行”添加的,则可以尝试处理
AddingNewItem
事件,并在用户开始编辑时填写默认值。这可能是最顺利的方法

或者,您可以处理
CellEditEnding
并使用
Dispatcher.BeginInvoke
来安排延迟操作,以填充其他列的默认值