【问题标题】:I have one XML file but two combo boxes I want to populate the second one depending on the first我有一个 XML 文件,但有两个组合框,我想根据第一个填充第二个组合框
【发布时间】:2012-07-10 08:10:25
【问题描述】:

我的应用程序中有两个组合框。第一个组合框可以获得所有需要的数据(在这种情况下是工厂编号),但是根据选择的工厂,我希望下一个组合框(在这种情况下是行号)自动填充该工厂的正确行。 这是我的 XML 文件 - 或测试数据

<?xml version="1.0" encoding="utf-8"?>
<Profiles>
<Factories>
  <Factory>F1</Factory>

  <Factory>F2</Factory>

  <Factory>F3</Factory>

  <Factory>F4</Factory>

  <Factory>F5</Factory>
  <Factory>F6</Factory>
  <Factory>F7</Factory>
  <Factory>F8</Factory>
</Factories>

  <Lines>
    <F1>G1</F1>
    <F1>G2</F1>
    <F1>G3</F1>
  </Lines>
</Profiles>

这是我目前所拥有的:

Private Sub populateComboBoxes()
    Dim doc As New XmlDocument()
    doc.Load("C:\TFS2010Source\ShopFloorApps\Main\Source\Components\000280LinePCBackup\000280LinePCBackup\Lines.XML")

    Dim factoryList As XmlNodeList = doc.SelectNodes("/Profiles/Factories/Factory")
    For Each Factory As XmlNode In factoryList
        factoryComboBox.Items.Add(Factory.InnerText)
    Next



End Sub

Private Sub factoryComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles factoryComboBox.SelectedIndexChanged
    Dim doc As New XmlDocument()
    doc.Load("C:\TFS2010Source\ShopFloorApps\Main\Source\Components\000280LinePCBackup\000280LinePCBackup\Lines.XML")


    Dim lineList As XmlNodeList = doc.SelectNodes("/Profiles/Lines")

    For Each line As XmlNode In lineList


        If factoryComboBox.SelectedItem.ToString = line.FirstChild.Name Then


            lineComboBox.Items.Add(line.FirstChild.InnerText)


        End If
        Next
End Sub

所以我想要的是当我选择 F1 时,另一个组合框会填充 G1、G2 和 G3 行。

谢谢

【问题讨论】:

  • 我不知道如何根据刚刚选择的组合框填充第二个组合框

标签: xml vb.net combobox


【解决方案1】:

您必须清除 lineComboBox 的 Items 集合并更改 SelecteNodes 路径。

lineComboBox.Items.Clear()
Dim lineList As XmlNodeList = doc.SelectNodes("/Profiles/Lines/" & factoryComboBox.SelectedItem.ToString)
For Each line As XmlNode In lineList
    lineComboBox.Items.Add(line.FirstChild.InnerText)
Next

【讨论】:

  • 我刚刚这样做了,然后再次检查。很高兴看到我最终设法解决了这个问题。从昨天开始就卡住了,非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 2017-05-27
  • 2021-01-11
相关资源
最近更新 更多