私はコントロールがさまざまなタブとパネル上にある複雑なフォームを持っています。これらのフォームでは、バインディングソースを使用してコントロールをデータソースにバインドします。バインディングソースと一致するコントロールのデータバインディングを確認する方法は?
開発中に、フォームのコントロールではなくデータソースのメンバーの名前が変更されている状況がある可能性があります。
フォームのロード時に例外がスローされないため、バインディングソースのデータソースメンバーをループし、コントロールのデータバインディング値と比較する方法はありますか?
このSO answerで説明されているように、非表示のコントロールには特に注意する必要があります。
このチェックはどこで行われますか?コンストラクタまたはOnLoad
? (少なくとも、InitializeComponent
の後に行うべきです。なぜなら、バインディングソースのデータソース、つまりtypeof(myObject)がこのメソッドで設定されているからです)。
プロパティのデータバインディングがデータソースに存在しない場合、例外が発生します。 'データソースのプロパティまたは列XXXXXXにバインドできません。' –
@RezaAghaei例外は発生していません。 –
例外は発生しますが、スローされません - 例外設定を確認してください。場合によっては、 'Load'イベントハンドラでスローされた例外がスワローになることがあります。その場合、' Load ..'イベントハンドラを 'Try .. catch'でラップすることができます – Fabio