2015-05-17 2 views
0

я связать некоторые данные в двух различных выпадающий список, как это:выпадающий Data Binding (самостоятельный выбор)

BindingList<Customer> customers = new BindingList<Customer>(); 
customer.Add(new Customer(1, "Mike")); 
customer.Add(new Customer(2, "Max")); 
customer.Add(new Customer(3, "Taylor")); 

combobox1.DisplayMember = "Name"; 
combobox1.ValueMember = "Id"; 
combobox1.DataSource = customers; 

combobox2.DisplayMember = "Name"; 
combobox2.ValueMember = "Id"; 
combobox2.DataSource = customers; 

Это работает хорошо, но если я выбрать некоторый элемент в ComboBox1 этот пункт автоматически выбрать в combobox2. Как решить эту проблему (нужен независимый выбор)?

+0

ли мое решение работает для вас? – cramopy

+0

Не совсем, скопируйте его, создайте новый объект, но мой BindingList имеет более 100 строк. – deeperzone

+0

Но мое решение - единственное, что работает. Даже ответы в дубликате очень похожи на мои ... Если это вам все равно помогло, можете ли вы пометить его как solevd? Thanjs – cramopy

ответ

1

Следующий код делает работу легко для меня:

BindingList<Customer> customer = new BindingList<Customer>(); 
customer.Add(new Customer(1, "Mike")); 
customer.Add(new Customer(2, "Max")); 
customer.Add(new Customer(3, "Taylor")); 

BindingList<Customer> customer2 = new BindingList<Customer>(customer); 

combobox1.DisplayMember = "Name"; 
combobox1.ValueMember = "Id"; 
combobox1.DataSource = customer; 

combobox2.DisplayMember = "Name"; 
combobox2.ValueMember = "Id"; 
combobox2.DataSource = customer2; 
+1

customers2 = клиенты -> - это тот же экземпляр. Не так ли? Мой совет создать новый экземпляр, передав список элементов в конструктор или что-то в этом роде. –

+0

Спасибо, но это не работает, тот же эффект. – deeperzone

+0

@deeperzone Я видел, что есть метод расширения CopyTo, поэтому, пожалуйста, попробуйте это, я добавлю его через пару минут. – cramopy