微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/xml/298978.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。