绑定xml多种多样,找到合适自己的才是好的。
xml 的内容:
<?xml version="1.0" encoding="GB2312" standalone="yes"?> <!--Total.xml--> <!-- 用于显示其他表,请勿修改 --> <SysSeting> <Total> <Table1>FigData</Table1> <Table1>File</Table1> <Table1>A</Table1> <Table1>B</Table1> <Table1>C</Table1> <Table1>D</Table1> <Table1>壹</Table1> <Table1>贰</Table1> </Total> </SysSeting>
comboBox1.Items.Clear(); //清空comboBox1中的集合 string xmlpath = @"Total.xml"; //工程中的xml,在 \bin\Debug 文件夹中 XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(xmlpath); XmlNodeList nodelist = xmldoc.SelectSingleNode("SysSeting").ChildNodes; for(int i=0;i<nodelist.Item(0).ChildNodes.Count;i++) { comboBox1.Items.Add(xmldoc.SelectSingleNode("SysSeting/Total").ChildNodes[i].InnerText); }
this.comboBox1.SelectedIndex = -1;
comboBox1下拉结果:
FigData
File
A
B
C
D
壹
贰
以上这些是简单的,那么我们来个二联。
xml 文件:
<?xml version="1.0" encoding="GB2312" standalone="yes"?> <!--Total.xml--> <!-- 用于显示其他表,请勿修改 --> <SysSeting> <!--内容--> <Total> <Name>姓名A</Name> <value>ID1</value> </Total> <Total> <Name>姓名B</Name> <value>ID2</value> </Total> <Total> <Name>姓名C</Name> <value>ID3</value> </Total> <Total> <Name>姓名D</Name> <value>ID4</value> </Total> </SysSeting>
C# 绑定方法:
/// <summary> - 数据绑定 - 绑定到 ComboBox /// </summary> private void GetXmlTable() { //xml文件所在的路径 string xmlpath = @"Total.xml"; //注意文件位置 此处表示在工程 \bin\Debug 中 DataSet xmlds = new DataSet(); xmlds.ReadXml(xmlpath); //ComboBox显示的属性(Text 前台显示) comboBox1.DisplayMember = "Name"; //ComboBox实际的属性值(隐藏/后台) comboBox1.ValueMember = "value"; /* comboBox1获取表集合内容, * DataSource 要习惯放在后面, * 不要放在DisplayMember和ValueMember 的前面 */ comboBox1.DataSource = xmlds.Tables["Total"]; }
C# comboBox1.SelectedIndex 值改变后发生 事件:
不要直接用 label1.Text = comboBox1.SelectedValue.ToString(); 这样你得到的结果值:value
private void comboBox1_SelectedIndexChanged(object sender,EventArgs e) { if (comboBox1.SelectedIndex != -1) { label1.Text = comboBox1.SelectedValue.ToString(); //传 comboBox1.ValueMember 值 } }
这样,你改变 comboBox1.DisplayMember 值后,comboBox1.ValueMember 值也跟着传递出去。 最后提一句,xml 对大小写敏感,要注意区分大小写。
原文链接:https://www.f2er.com/xml/298978.html