【问题标题】:VB.NET Databinding from 2 Tables来自 2 个表的 VB.NET 数据绑定
【发布时间】:2012-01-05 20:44:15
【问题描述】:

我有以下结构

|-Table 1
|--PK IDT1
|--Name field
|-Table 2
|--PK ID
|--FK IDT1
|--Name field

我想将表 1 绑定到组合框 1,将表 2 绑定到组合框 2,以便当有人在组合框 1 中选择一个值时,组合框 2 仅填充来自组合框 1 的具有 FK IDT1 值的行。这可以通过数据绑定实现还是我必须对其进行编码?

【问题讨论】:

  • 这是关于 WinForms、WPF 还是 ASP.Net?

标签: vb.net winforms data-binding


【解决方案1】:

在您的应用程序的FORM_LOAD 上仅填充ComboBox1。这个伪代码可以帮助你:

在您的应用程序的 FORM_LOAD 上:

      Bind ComboBox1
      SET DISPLAY MEMBER Property of BomboBox1 to field
      SET VALUE MEMBER Property of ComboBox1 to IDT1
      Clear ComboBox1 current Text

在您的 ComboBox1SelectionChangeCommitted

      Bind ComboBox2 using the following Query:
           SELECT ID, field FROM Table2 WHERE IDT1 = ComboBox1.SelectedValue.ToString
      SET DISPLAY MEMBER Property of ComboBox2 to field
      SET VALUE MEMBER Property of ComboBox2 to IDT

SelectedIndexChanged 事件在每次 SelectedIndex 属性值更改时引发。如果您的 ComboBox 最初为空,则其 SelectedIndex 为 -1。当您将数据绑定到它时,默认情况下会选择第一个项目,并且 SelectedIndex 更改为 0。然后您再次将 SelectedIndex 显式设置为 -1。

如果您只想知道用户何时做出选择,则改为处理 SelectionChangeCommitted 事件。

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多