2

IDataErrorInfoとを実装する BusinessObjects を使用しIEditableObjectます。BindingListこれらのオブジェクトを持つ s は BindingSources に追加され、フォーム (WinForms) で UserControls と DataGrids をバインドするために使用されます。は、フォームの にBindingSourceDataSource として追加で設定されます。ErrorProvider

現在、タイプ int および short のプロパティには TextBoxes を使用しています。これらは、最小値/最大値などのカスタム検証を使用して BusinessObjects 内で検証されます。カスタム検証からのエラー メッセージが TextBox の横にうまく表示されるため、これは正常に機能します。

ただし、入力が int の値より大きい場合 (例: "9999999999")、BindingSource はその値を BusinesObject に入力しようとさえしませんが、代わりに「Int32 の値が大きすぎました」のようなエラー メッセージをエラー プロバイダーに提供します。 .」。「Int32」でユーザーを悩ませたくはありませんが、そのためのカスタム エラー メッセージが必要です。

BindingSource がこの機能を提供するのは良いことですが、カスタム エラー メッセージを提供することは可能ですか?

4

1 に答える 1

1

エラー処理動作を無効にするには、 FormattingEnabledプロパティを false に設定する必要があります。

このような:

textBox1.DataBindings.Add("Text", bindingSource1, "IntValue", false, 
    System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged);
于 2010-04-09T04:17:28.357 に答える