如何从WPF数据网格中仅获取修改的项目

时间:2010-08-23 18:55:03

标签: wpf binding wpfdatagrid

我已使用可编辑的WPF DataGrid绑定了一个列表

我想从WPF数据网格中仅获取修改后的项目以进行更新。

请让我知道如何做到这一点。

2 个答案:

答案 0 :(得分:1)

我的WPF datagrid应用程序设置如下:

1)手动定义所有列,设置其绑定,并为指定的每个绑定通知源更新

2)为datagrid的SourceUpdated事件

添加了一个事件处理程序

3)在事件处理程序中,我只有以下代码:

this.updatedItems.Add(BindingOperations.GetBindingExpression(e.TargetObject, e.Property).DataItem as MyClass); 

updatedItems是一个HashSet<>和MyClass是绑定到datagrid的ItemsSouce的对象类型。

4)当用户点击保存按钮时,我只需枚举哈希集。 Hashset很好,因为它只包含唯一值。因此,如果多次编辑行,或者即使编辑同一行中的多个单元格,则散列集仍将只包含该对象的单个条目。

答案 1 :(得分:0)

你的数据行上有一个RowState属性(还有一个RowChanged事件),但请确保你需要这个。我是否错误地认为数据绑定会自动确定哪些行需要更新?