【问题标题】:Winforms .net 2.0: binding a textbox to a parent propertyWinforms .net 2.0:将文本框绑定到父属性
【发布时间】:2009-06-17 19:09:05
【问题描述】:

我有一个强类型的 dset,有两个数据表:Parent 和 Child,有一个以您期望的方式链接它们的关系(例如 parent-has-many-children)。

在我的孩子详细信息表单上,我显示了很多关于当前孩子的信息,并带有如下绑定调用:

me.txtBirthDate.DataBindings.add(New Windows.Forms.Binding("Text", MyDataset, "Child.Birthdate"))

但我还想显示一些关于孩子父母的信息——比如父母的名字。我试过了:

me.txtParentName.DataBindings.add(New Windows.Forms.Binding("Text", MyDataset, "Child.Parent.Name"))

me.txtParentName.DataBindings.add(New Windows.Forms.Binding("Text", MyDataset, "Parent.Name"))

但这两者都会导致一个空白文本框。

我当然可以将父属性直接放在子数据表上并用底层数据库表之间的连接结果填充它们,但如果可能的话,我想避免这种情况(我真正的应用程序只涉及一个父母少,孩子多,我不想移动这么多不必要的数据)。

这可能吗?

非常感谢!

-罗伊

【问题讨论】:

    标签: winforms data-binding .net-2.0


    【解决方案1】:

    我通常在DataSet 和控件之间使用BindingSource。使用这种方法时,如果我有控件要绑定到来自不同表的相关行,我创建一个新的BindingSource,它指向相关行(他的DataSource 属性是原始BindingSource,他的DataMember 是父表),然后将其他控件绑定到第二个BindingSource

    我通常在设计器视图中完成这一切,它只是在我进行过程中创建那些 BindingSource 对象。

    希望对您有所帮助。

    【讨论】:

    • 非常感谢——我尝试了 BindingSource,但我不清楚如何使用它来获取父级。我最后只是处理了孩子的 CurrencyManager.CurrentChanged 事件,并在那里调用了 .GetParentRows。 IOW,我没有对这些字段使用绑定。感谢您抽出宝贵时间!
    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 2013-08-31
    • 2016-02-12
    • 2011-01-13
    • 1970-01-01
    • 2023-04-06
    • 2011-10-08
    • 2018-11-16
    相关资源
    最近更新 更多