晚上好
我在.NET Windows Forms项目中使用DataGridView时遇到了一些问题。网格是只读的,并绑定到包含自定义业务对象的可排序BindingList<T>
。我的业务对象类确实实现了IEditableObject
。
现在,在网格中导航时,始终会调用BeginEdit
和EndEdit
方法。有没有办法阻止网格或绑定源这样做?它被明确地设置为只读(ReadOnly = true),所以没有任何理由(不,让我们小心地说我没有看到),一遍又一遍地调用这些方法。
感谢您阅读:)
的Matthias
答案 0 :(得分:2)
在复制你的问题后,似乎DataGridView调用了一系列方法/事件,无论如何都会调用你的IEditableObject事件......
当您将BindingList设置为DataGridView.DataSource以及在Grid中导航时,会发生这种情况。
无论我为DataGridView选择哪个EditMode,代码都会进入BusinessObjects的IEditableObject.EndEdit()方法。
这似乎是框架的旧 BUG ...我找到了这个Bug Report。
此错误报告非常陈旧。我不是百分百确定这是否还是一个问题...也许已经有一些属性可以解决这个问题。
有什么想法吗?