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

发布于 2024-09-16 00:24:22 字数 95 浏览 7 评论 0原文

我已将列表与可编辑 WPF DataGrid 绑定在一起,

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

请让我知道如何执行此操作。

I have binded a list with Editable WPF DataGrid

I want to get only the modified Items from the WPF Data Grid for updation.

Please let me know how to do this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌酱 2024-09-23 00:24:22

我的 WPF 数据网格应用程序设置如下:

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

2) 为数据网格的 SourceUpdated 事件添加一个事件处理程序

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

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

updatedItems is a HashSet<> MyClass 是绑定到数据网格的 ItemsSouce 的对象类型。

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

I have my WPF datagrid app set up as so:

1) Manually defined all the columns, set their bindings and for each binding specified that it notifies on source updates

2) Added an event handler for the datagrid's SourceUpdated event

3) In the event handler I have only the following code:

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

updatedItems is a HashSet<> and MyClass is the type of objects bound to the datagrid's ItemsSouce.

4) When the user clicks on the save button I simply enumerate the hashset. Hashset is nice, because it only contains unique values. So if a row is edited multiple times or even if multiple cells in the same row are edited, the hashset will still only contain a single entry for the object.

燃情 2024-09-23 00:24:22

数据行上有一个 RowState 属性(还有一个 RowChanged 事件),但请确保您需要它。我是否错误地假设数据绑定会自动找出需要更新的行?

Well there is a RowState property on your data row (there is also a RowChanged event), but make sure you need this. Am I under the wrong assumption that databinding automatically figures out which rows need to be updated?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文