2009-07-08 5 views
3

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

ShowCellErrorsとShowRowErrorsをfalseに設定しようとしましたが、まだIDataErrorInfo.this [string columnName]が呼び出されています。私が知っているオブジェクトのバリデーションをどのように止めたらいいのですか?

答えて

1

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

obj.ValidationEnabled = false; // etc 

それはあなたがパススルーオブジェクト実際の型を模倣するが、IDataErrorInfoを実装していない導入する可能性の主要な問題がある場合。ファサードを手作業でコーディングするか、またはSystem.ComponentModel(おそらくITypedListまたはTypeDescriptionProvider)の独創的な使用によって、クラスを手作業で書くほうが簡単です)。

+0

私はそれを考えていましたが、より簡単な方法があることを望んでいました。 –

関連する問題