子オブジェクトの複合体であるビジネス オブジェクトがあります。
Visual Studio 2008 でデータバインディングを使用して、Windows フォームのコントロールにバインドしています。
しかし、フォームの InitializeComponent メソッドで上記のエラーが発生しています。
ジェネリック リスト ChildListObject を含む ParentObject というオブジェクトがあるとします。ParentObject には、それ自体が Child オブジェクトを持つ Child オブジェクトもあります。(つまり、ParentObject.ChildObject.ChildObject)
メインのバインディング ソースを設定します。
BindingSource.Datasource = ParentObject
グリッドを追加し、バインディング ソースを設定します。
GridBindingSource.Datasource = ParentObject
DataMember を次のように設定します。
BindingSourceB.DataMember = "ChildListObject"
これで、グリッドのデータソースが GridBindingSource に設定されました。
Me.MyDataGridView.DataSource = Me.GridBindingSource
ParentObject および ParentObject.ChildObject のプロパティにバインドされている他のコントロールもあります。
孤立したプロジェクトでこれをテストしたところ、問題なく動作しましたが、実際のバグが何であるかを見つけるのに苦労していますか? 以前は機能していたコードが突然機能しなくなります。
私が得るエラーは次のとおりです(上記の例でオブジェクトの名前を使用した場合):
「DataMember プロパティの ChildObject が DataSource に見つかりません」
次の場合に失敗します。
Me.MyDataGridView.DataSource = Me.GridBindingSource
奇妙なことに、 <System.Diagnostics.DebuggerStepThrough()> を削除してから、失敗したときに続行するだけで問題ありませんか??? しかし、実行時にはまだ失敗します。
誰かが私を正しい方向に向けることができるアイデアを持っていますか? 私がグーグルで見つけた最も近いものは、生成されたデザイナーコードの順序が混乱している可能性があるということです。機能していたコードが突然機能しなくなります。
この問題は行き来するようです。エラーが発生した後に続行すると、プログラムは問題なく続行されます。おそらくVSのバグです。しかし、実行時にエラーがまだ存在します。
この問題の原因は何ですか? 発生を止めるにはどうすればよいですか?