我有一个业务对象,它是子对象的组合。
我在 Visual Studio 2008 中使用数据绑定来绑定到 Windows 窗体上的控件。
但是我在表单的 InitializeComponent 方法中遇到了上述错误。
假设我有一个名为 ParentObject 的对象,其中包含一个通用列表 ChildListObject。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 的属性
我已经在一个孤立的项目中对此进行了测试,它工作正常,所以我很难找出真正的错误是什么?过去可以工作的代码会突然停止工作。
我得到的错误是(如果我在上面的例子中使用对象的名称):
“在 DataSource 上找不到 DataMember 属性 ChildObject”
它失败了:
Me.MyDataGridView.DataSource = Me.GridBindingSource
奇怪的是,如果我删除 <System.Diagnostics.DebuggerStepThrough()> 然后当它失败时继续它很好???但它在运行时仍然失败。
有没有人有任何想法可以为我指明正确的方向?我通过谷歌搜索发现的最接近的是它可能与生成的设计器代码的顺序混乱有关。正在运行的代码将突然停止工作。
这个问题似乎来来去去。如果我只是在引发错误后继续,程序会愉快地继续没有问题。可能是VS中的一个错误。但是在运行时错误仍然存在。
是什么导致了这个问题?如何阻止它发生?