2009-11-13 5 views
5

Sur un formulaire, j'ai deux combobox qui ont la même DataSource (leurs listes d'éléments sont les mêmes). Lorsque l'utilisateur sélectionne un élément dans l'un des contrôles, l'élément sélectionné de l'autre contrôle est également modifié. Ce n'est pas ce que je veux. Je souhaite que les deux listes soient remplies avec la même DataSource (comme je le fais actuellement), mais j'aimerais que les éléments sélectionnés soient indépendants les uns des autres.Comment séparer l'élément sélectionné de deux combobox avec un seul DataSource?

Comment puis-je faire cela?

Répondre

6

Ou vous pouvez utiliser ...

var dataSource = new[] { "item1", "item2", "item3" }; 
comboBox1.DataSource = dataSource; 
comboBox2.BindingContext = new BindingContext(); 
comboBox2.DataSource = dataSource; 
+0

Ils ont même doc'd que très bien. Aussi étonnant que puisse être le comportement de la synchronisation automatique, il montre que RTFM est un must dans l'utilisation de ce framework. – TheBlastOne

1

Vous devez créer deux instances différentes de la source de données. Pour cela, vous pouvez utiliser la méthode d'extension ToArray:

var dataSource = new string[] { "item1", "item2", "item3" }; 
comboBox1.DataSource = dataSource.ToArray(); 
comboBox2.DataSource = dataSource.ToArray();