xml 绑定到 comboBox (DisplayMember和ValueMember)
发布时间:2020-12-16 05:03:06 所属栏目:百科 来源:网络整理
导读:绑定xml多种多样,找到合适自己的才是好的。 xml 的内容: ?xml version="1.0" encoding="GB2312" standalone="yes"?!--Total.xml--!-- 用于显示其他表,请勿修改 --SysSetingTotal Table1FigData/Table1 Table1File/Table1 Table1A/Table1 Table1B/Table1 Ta
绑定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,在 binDebug 文件夹中 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 贰 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"; //注意文件位置 此处表示在工程 binDebug 中 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 值改变后发生 事件: private void comboBox1_SelectedIndexChanged(object sender,EventArgs e) { if (comboBox1.SelectedIndex != -1) { label1.Text = comboBox1.SelectedValue.ToString(); //传 comboBox1.ValueMember 值 } } 这样,你改变 comboBox1.DisplayMember 值后,comboBox1.ValueMember 值也跟着传递出去。 最后提一句,xml 对大小写敏感,要注意区分大小写。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |