你如何阻止DataGridView调用IDataErrorInfo.this [string columnName] get?

时间:2009-07-08 11:45:46

标签: c# .net winforms datagridview idataerrorinfo

我有一个实现IDataErrorInfo的数据对象,但验证逻辑有点慢。不是那么慢,但是你要慢到很多,你不想多次调用它。在我的应用程序中,这些对象的列表显示在DataGridView控件中。网格是只读的,并且只会包含有效的数据对象,但是DataGridView坚持为网格中的每个单元格调用IDataErrorInfo.this [string columnName],这使得重新绘制非常慢。

我已经尝试将ShowCellErrors和ShowRowErrors设置为false,但它仍在调用IDataErrorInfo.this [string columnName]。任何想法如何阻止它验证我知道的对象是否有效?

1 个答案:

答案 0 :(得分:1)

作为一个便宜的选项...也许你可以在你的对象上设置一个禁用验证的标志,并始终从2 ""方法返回IDataErrorInfo

obj.ValidationEnabled = false; // etc

如果这是一个主要问题,你可以引入一个模拟实际类型但不实现IDataErrorInfo的pass-thru对象。通过手动编码立面,或者使用System.ComponentModel(可能是ITypedListTypeDescriptionProvider的一些创造性使用;注意单一类型不值得 - 写一个类手动会更容易)。

相关问题