多个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;