多个ComboBox绑定同一数据源的问题及解决方法

多个comboBox绑定同一数据源会出现选择其中的Combobox后其他的都跟着改变。

数据源如下:

 

public class DataContent
    {
        public DataContent(string name, string id)
        {
            Name = name;
            ID = id;
        }
        public string Name { get; set; }
        public string ID { get; set; }

       
    }

    public class DataLlist
    {
        public static List<DataContent> lstData = new List<DataContent>(){new DataContent("Name1","1"), new DataContent("Name2", "2")};
    }

 

 

绑定代码private void Form1_Load(object sender, EventArgs e)
        {
            Bind(comboBox1);
            Bind(comboBox2);
            Bind(comboBox3);
        }

        public void Bind(ComboBox cmb)
        {
            cmb.DisplayMember = "Name";
            cmb.ValueMember = "ID";
             List<DataContent> lstData = new List<DataContent>(DataLlist.lstData);
            cmb.DataSource = lstData;

        }private void Form1_Load(object sender, EventArgs e)
        {
            Bind(comboBox1);
            Bind(comboBox2);
            Bind(comboBox3);
        }

        public void Bind(ComboBox cmb)
        {
            cmb.DisplayMember = "Name";
            cmb.ValueMember = "ID";
            cmb.DataSource = DataLlist.lstData;

        }

 

显示效果:第一个Combobox选择后,其他的都跟着变成Name1。

   

 

 

解决方法:将绑定数据源方法修改为如下:

List<DataContent> lstData = new List<DataContent>(DataLlist.lstData);
cmb.DataSource = lstData;

 

 

posted @ 2011-01-14 10:46  晓海  阅读(1862)  评论(0编辑  收藏  举报