gpt4 book ai didi

visual-studio-2008 - 在 DataSource 上找不到 DataMember 属性 [ObjectName]

转载 作者:行者123 更新时间:2023-12-04 17:42:27 28 4
gpt4 key购买 nike

我有一个业务对象,它是子对象的组合。
我在 Visual Studio 2008 中使用数据绑定(bind)来绑定(bind)到 Windows 窗体上的控件。

但是我在表单的 InitializeComponent 方法中遇到了上述错误。

假设我有一个名为 ParentObject 的对象,其中包含一个通用列表 ChildListObject。 ParentObject 也有 Child 对象,它本身有一个 Child 对象。 (即ParentObject.ChildObject.ChildObject)

我设置了主要的绑定(bind)源:

BindingSource.Datasource = ParentObject

我添加一个网格并设置它的绑定(bind)源:
GridBindingSource.Datasource = ParentObject

并将 DataMember 设置为:
BindingSourceB.DataMember = "ChildListObject"

现在,网格的数据源设置为 GridBindingSource:
Me.MyDataGridView.DataSource = Me.GridBindingSource

还有其他控件绑定(bind)到 ParentObject 和 ParentObject.ChildObject 的属性

我已经在一个孤立的项目中对此进行了测试,它工作正常,所以我很难找出真正的错误是什么?过去可以工作的代码会突然停止工作。

我得到的错误是(如果我在上面的例子中使用对象的名称):

"DataMember property ChildObject cannot be found on the DataSource"



它失败了:
Me.MyDataGridView.DataSource = Me.GridBindingSource

奇怪的是,如果我删除 然后当它失败时继续它很好???但它在运行时仍然失败。

有没有人有任何想法可以为我指明正确的方向?我通过谷歌搜索发现的最接近的是它可能与生成的设计器代码的顺序变得困惑有关。正在运行的代码将突然停止工作。

这个问题似乎来来去去。如果我只是在引发错误后继续,程序会愉快地继续没有问题。可能是VS中的一个错误。但是在运行时错误仍然存​​在。

是什么导致了这个问题?如何阻止它发生?

最佳答案

我对此进行了几次实验。问题仅在这种情况下发生
如果你有一个 BaseForm 和 BindingSource ,
如果你从这个 BaseForm 继承一个新的 InheritedForm,
或者
如果您在 InheritedForm 上有与 BindingSource 相关的附加绑定(bind)源(由 BaseForm 继承)
你有设计师错误。我没有设计器解决方案,但是如果您只是忽略并继续,当您再次构建项目时一切都会正常
否则您将不得不通过代码设置数据成员。

关于visual-studio-2008 - 在 DataSource 上找不到 DataMember 属性 [ObjectName],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/588740/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com