xml 绑定到 comboBox (DisplayMember和ValueMember)

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

绑定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>


C#绑定到comboBox1: 用 Form1_Load装载。
            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

猜你在找的XML相关文章