WPF DataGrid 有 RowEditEnding 但没有 RowEditEnded

标签 wpf datagrid

我已将 ObservableCollection 绑定(bind)到 DataGrid。当我更改 DataGrid 中的值时,将引发 RowEditEnding 事件。但 e.Row.Item 是编辑之前的对象,因此您看不到新值。我明白这一点是因为 EditEnding。在 Silverlight 中,您有一个 EditEnded 事件,当我编辑 DataGrid 时,如何获取具有新值的对象。

谢谢

菲利普

最佳答案

来自https://social.msdn.microsoft.com/Forums/en-US/c38fc695-d1ec-4252-87b7-feb484ee01e4/wpf-4-datagrid-roweditending ,将Binding的UpdateSourceTrigger更改为PropertyChanged。然后,该属性将在 RowEditEnding 事件之前立即更新,并且可以从 RowEditEnding 事件处理程序访问新值。

例如,对于 DataGridComboBoxColumn

SelectedItemBinding="{Binding ForTestResult, UpdateSourceTrigger=PropertyChanged}"

这似乎是解决此问题的一个非常简单的方法。

此外,虽然我没有尝试过,但我认为如果您的对象实现了 IEditableObject,那么在编辑之前访问原始值应该很容易。

关于WPF DataGrid 有 RowEditEnding 但没有 RowEditEnded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3907701/

相关文章:

C# datagrid vs DevExpress XtraGrid,速度明智

wpf - 奇怪的 WPF DataGrid 行为 : Little button like nubbies indenting some rows appearing to the left of the first column

WPF MVVM 在 View 模型中使用代码 C# 为 TreeView 添加动态上下文菜单

c# - 在 C#/XAML 应用程序中无法绑定(bind)到属于 WindowsFormsHost 子对象的属性的解决方法?

wpf - 实体/业务对象验证的建议,其中验证依赖于其他实体/服务

actionscript-3 - 单独验证 DataGridColumn 单元格

wpf - 为数据网格行创建上下文菜单

c# - 无法理解此 MySQL 连接字符串

使用 MVVM 的 WPF Datagrid .. 是否可以通过两种方式绑定(bind)到 DataTable?

javascript - 在数据网格中复选框的 onclick 中使用 Databinder.Eval