xml 绑定到 comboBox (DisplayMember和ValueMember)

前端之家收集整理的这篇文章主要介绍了xml 绑定到 comboBox (DisplayMember和ValueMember)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

绑定xml多种多样,找到合适自己的才是好的。

xml 的内容

  1. <?xml version="1.0" encoding="GB2312" standalone="yes"?>
  2. <!--Total.xml-->
  3. <!-- 用于显示其他表,请勿修改 -->
  4. <SysSeting>
  5. <Total>
  6. <Table1>FigData</Table1>
  7. <Table1>File</Table1>
  8. <Table1>A</Table1>
  9. <Table1>B</Table1>
  10. <Table1>C</Table1>
  11. <Table1>D</Table1>
  12. <Table1></Table1>
  13. <Table1></Table1>
  14. </Total>
  15. </SysSeting>


C#绑定到comboBox1: 用 Form1_Load装载。
  1. comboBox1.Items.Clear(); //清空comboBox1中的集合
  2. string xmlpath = @"Total.xml"; //工程中的xml,在 \bin\Debug 文件夹中
  3. XmlDocument xmldoc = new XmlDocument();
  4. xmldoc.Load(xmlpath);
  5. XmlNodeList nodelist = xmldoc.SelectSingleNode("SysSeting").ChildNodes;
  6. for(int i=0;i<nodelist.Item(0).ChildNodes.Count;i++)
  7. {
  8. comboBox1.Items.Add(xmldoc.SelectSingleNode("SysSeting/Total").ChildNodes[i].InnerText);
  9. }
  1. this.comboBox1.SelectedIndex = -1;


comboBox1下拉结果:

FigData
File
A
B
C
D



以上这些是简单的,那么我们来个二联。

xml 文件

  1. <?xml version="1.0" encoding="GB2312" standalone="yes"?>
  2. <!--Total.xml-->
  3. <!-- 用于显示其他表,请勿修改 -->
  4. <SysSeting>
  5. <!--内容-->
  6. <Total>
  7. <Name>姓名A</Name>
  8. <value>ID1</value>
  9. </Total>
  10. <Total>
  11. <Name>姓名B</Name>
  12. <value>ID2</value>
  13. </Total>
  14. <Total>
  15. <Name>姓名C</Name>
  16. <value>ID3</value>
  17. </Total>
  18. <Total>
  19. <Name>姓名D</Name>
  20. <value>ID4</value>
  21. </Total>
  22. </SysSeting>

C# 绑定方法

  1. /// <summary> - 数据绑定 - 绑定到 ComboBox
  2. /// </summary>
  3. private void GetXmlTable()
  4. {
  5. //xml文件所在的路径
  6. string xmlpath = @"Total.xml"; //注意文件位置 此处表示在工程 \bin\Debug 中
  7. DataSet xmlds = new DataSet();
  8. xmlds.ReadXml(xmlpath);
  9.  
  10. //ComboBox显示属性(Text 前台显示)
  11. comboBox1.DisplayMember = "Name";
  12. //ComboBox实际的属性值(隐藏/后台)
  13. comboBox1.ValueMember = "value";
  14.  
  15. /* comboBox1获取表集合内容
  16. * DataSource 要习惯放在后面,
  17. * 不要放在DisplayMember和ValueMember 的前面
  18. */
  19. comboBox1.DataSource = xmlds.Tables["Total"];
  20. }

C# comboBox1.SelectedIndex 值改变后发生 事件:
不要直接用 label1.Text = comboBox1.SelectedValue.ToString(); 这样你得到的结果值:value

  1. private void comboBox1_SelectedIndexChanged(object sender,EventArgs e)
  2. {
  3. if (comboBox1.SelectedIndex != -1)
  4. {
  5. label1.Text = comboBox1.SelectedValue.ToString(); //传 comboBox1.ValueMember 值
  6. }
  7. }

这样,你改变 comboBox1.DisplayMember 值后,comboBox1.ValueMember 值也跟着传递出去。 最后提一句,xml 对大小写敏感,要注意区分大小写。

猜你在找的XML相关文章