3

IDataErrorInfo を実装するデータ オブジェクトがありますが、検証ロジックは少し遅いです。それほど遅くはありませんが、何度も呼び出したくないほど遅いです。私のアプリケーションでは、これらのオブジェクトのリストが DataGridView コントロールに表示されます。グリッドは読み取り専用で、有効なデータ オブジェクトのみが含まれますが、DataGridView はグリッド内のすべてのセルに対して IDataErrorInfo.this[string columnName] を呼び出すことを主張しているため、再描画が非常に遅くなります。

ShowCellErrors と ShowRowErrors を false に設定しようとしましたが、まだ IDataErrorInfo.this[string columnName] を呼び出しています。有効であることがわかっているオブジェクトの検証を停止する方法はありますか?

4

1 に答える 1

1

""安価なオプションとして...おそらく、検証を無効にし、常に2つのIDataErrorInfoメソッドから戻るオブジェクトに設定できるフラグですか?

obj.ValidationEnabled = false; // etc

それが大きな問題である場合は、実際の型を模倣するが実装しないパススルー オブジェクトを導入できますIDataErrorInfo。ファサードを手動でコーディングするか、またはSystem.ComponentModel(おそらくITypedListor TypeDescriptionProvider; 単一の型だけでは価値がないことに注意してください。クラスを手動で記述する方が簡単です) を独創的に使用します。

于 2009-07-08T11:54:18.727 に答える