2009-07-21 5 views
1

J'ai ceci:WinForms Combox - Ajout d'élément à une liste databound puis paramètre qui pour être SelectedItem

cmbConnections.DisplayMember = "Name"; 
cmbConnections.ValueMember = "Index"; 
cmbConnections.DataSource = DBConnectionSettings.ConnectionList; 

Tous Ok!

maintenant Ajouter un nouvel élément à la liste:

DBConnectionSettings.Connection c = new DBConnectionSettings.Connection(); 
c.Name = reply; 
c.Index = DBConnectionSettings.ConnectionList.Count + 1; 
DBConnectionSettings.ConnectionList.Add(c); 

Je veux maintenant montrer ce nouvel élément dans la comboxbox comme l'élément sélectionné. La définition du texte de la liste déroulante échoue.

Merci

+0

Pourquoi faites-vous Count + 1, je pensais Count serait au moins 1 base donc si quelque chose ce serait Count -1. –

Répondre

1

Essayez de mettre un BindingSource entre votre DataSource et la zone de liste déroulante. Après avoir ajouté votre nouvel élément, appelez myBindingSource.ResetBindings (false); Ensuite, vous définissez la propriété Position de myBindingSource ou la propriété SelectedValue du ComboBox.

0

Vous avez défini l'élément ValueMember de votre zone de liste déroulante sur "Index", ce qui signifie que vous pouvez sélectionner une valeur dans la zone de liste déroulante en définissant ComboBox.SelectedValue sur l'index de votre élément. I.e .:

cmbConnections.SelectedValue = c.Index; 
+0

Cela déclenche une exception, ne peut pas définir SelectedValue à 0 – Jon

Questions connexes