.net - 只读 DataGridView 和 IEditableObject

标签 .net winforms data-binding ieditableobject

晚上好

我在 .NET Windows Forms 项目中的 DataGridView 遇到了一点问题。网格是只读的并绑定(bind)到可排序的 BindingList<T>其中包含自定义业务对象。我的业务对象类确实实现了 IEditableObject .

现在 BeginEditEndEdit在网格中导航时,方法会一直被调用。有没有办法阻止网格或绑定(bind)源这样做?它被显式设置为只读 (ReadOnly = true),因此根本没有理由(不,让我们小心地说,我没有看到)一遍又一遍地调用这些方法。

感谢您的阅读:)

马蒂亚斯

最佳答案

复制您的问题后,DataGridView 似乎调用了一系列方法/事件,无论发生什么,最终都会调用您的 IEditableObject 事件 ...

当您将 Bi​​ndingList 设置为 DataGridView.DataSource 以及在网格中导航时,就会发生这种情况。

无论我为 DataGridView 选择何种 EditMode,代码都将进入 BusinessObjects 的 IEditableObject.EndEdit() 方法。

这似乎是框架的一个老BUG...我发现了这个Bug Report .

这个错误报告很旧。我不是 100% 确定这是否仍然是一个问题......也许已经有一些属性(property)可以解决这个问题。

有什么想法吗?

关于.net - 只读 DataGridView 和 IEditableObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/281297/

相关文章:

c# - 工具条 WinForms .Net Core 的问题

winforms - 如何使 Windows 窗体 UI 响应式?

c# - 将 WPF 中的图像源绑定(bind)到 Url

.net - 从Reactive Extensions(Rx)中的不同线程触发OnNext是不礼貌的吗?

c# - 改为使用参数值在 nhibernate 中打印查询字符串?

.net - 同步执行不同类中的代码的线程的有效方法?

c# - 如何在不使用对象的情况下检查 DataGridViewComboBoxColumn 中的项目?

c# - DataBinding 到单例属性的属性

wpf - 具有依赖属性的 UserControl 以替换重复的类似控件集

c# - 具有包含 7 亿条记录的表的数据库