晚上好
我在 .NET Windows Forms 项目中的 DataGridView 遇到了一点问题。网格是只读的并绑定(bind)到可排序的 BindingList<T>
其中包含自定义业务对象。我的业务对象类确实实现了 IEditableObject
.
现在 BeginEdit
和 EndEdit
在网格中导航时,方法会一直被调用。有没有办法阻止网格或绑定(bind)源这样做?它被显式设置为只读 (ReadOnly = true),因此根本没有理由(不,让我们小心地说,我没有看到)一遍又一遍地调用这些方法。
感谢您的阅读:)
马蒂亚斯
最佳答案
复制您的问题后,DataGridView 似乎调用了一系列方法/事件,无论发生什么,最终都会调用您的 IEditableObject 事件 ...
当您将 BindingList 设置为 DataGridView.DataSource 以及在网格中导航时,就会发生这种情况。
无论我为 DataGridView 选择何种 EditMode,代码都将进入 BusinessObjects 的 IEditableObject.EndEdit() 方法。
这似乎是框架的一个老BUG...我发现了这个Bug Report .
这个错误报告很旧。我不是 100% 确定这是否仍然是一个问题......也许已经有一些属性(property)可以解决这个问题。
有什么想法吗?
关于.net - 只读 DataGridView 和 IEditableObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/281297/