2

.NETCF には ErrorProvider クラスがないため、同様の機能を実装するにはどうすればよいですか (必ずしも ErrorProvider とまったく同じである必要はありません)。

DataRow.RowError プロパティと DataRow.SetColumnError メソッドを使用して、すべての通常のデータバインディング コンストラクトを使用してコントロールをデータテーブルにバインドしていますが、受信するためにフックできる DataTable、BindingManagerBase などのイベントが見つかりません。あらゆる種類の通知。

フォーム上のすべてのコントロールを手動で反復処理し、バインドされたコントロールのルック アンド フィールを変更するメソッドを呼び出して行き詰まっていますか?

ありがとう、MrB

4

1 に答える 1

0

クラスはErrorProviderかなり基本的なようです-実際、少し基本的すぎます。Red Gate Reflectorをお持ちの場合は、クラスを分解して確認することをお勧めします。それ以外の場合は、を作成しDictionary<Control, String>ます。

独自のプロバイダーを作成するための簡単なアイデアは次のとおりです。

Dictionary<Control, String> ErrorSet = new Dictionary<Control, String>();

public void SetError(Control control, String message)
{
    // code for adding error information
    ErrorSet.Add(control, message);
}

public String GetError(Control control)
{
    // code for retrieving error information
    return ErrorSet[control];
}

public String Clear()
{
    // code for clearing all errors
}

ここにRGリフレクターがないか、より多くのサンプルメソッドを提供します。しかし、これは作業するためのある種のサンプルを提供するはずです。

于 2010-11-15T17:36:08.477 に答える