gpt4 book ai didi

c# - 如何从数据网格中删除无效行?

转载 作者:太空狗 更新时间:2023-10-29 23:50:25 26 4
gpt4 key购买 nike

应用结构说明:

语言是 C#,带有 WPF 和 MVVM 模式。 View 基本上是一个 DataGrid,用于显示一些 DataTable 值(通过 ViewModel)。允许用户从网格中添加、编辑和删除行。由于从中检索值并稍后插入回的数据库,某些值限制适用(没有空值,只有数字等)。

可以直接对 DataGrid 进行数据修改,但还有一个单独的对话框用于编辑和添加新行。删除按钮的工作方式是 ViewModel 从 DataTable 中找到选定的 DataGrid 行,删除它们,更改会自动更新到 DataGrid。

问题:

所以我遇到了这个问题,用户试图将无效数据插入到 DataGrid 中,红色感叹号似乎表明插入的数据存在问题(我猜是验证错误?)。如果此时用户希望重新开始并选择要删除的无效行,他将无法删除该行,因为它不存在于模型中,而只存在于 DataGrid 中。尝试直接从 DataGrid 中删除无效的 DataGridRow 会引发异常,指出 DataGrid 已绑定(bind)到模型,并且应在其中进行任何修改。

最后的问题:

如何删除模型中不存在的无效 DataGridRow?

最佳答案

如果您实现 MVVM 模式,那么您无需执行任何操作,只需将您的 observablecollection 中的更改链接到数据层以将其连接到数据库。

您也可以将 DataGrid 定义为:

<DataGrid ItemsSource="{Binding Items}" SelectedItem="{Binding ActiveItem}" .../>

然后你可以在你的代码中对 Items 和 ActiveItem 的 PropertyChanged 事件使用react,有点像

ActiveItem.PropertyChanged += ... 

希望对你有帮助

关于c# - 如何从数据网格中删除无效行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com