Comment faire pour insérer un élément ComboBox dans ListBox? [winforms]
La question est très simple,
Comment insérer une zone de liste déroulante objet sélectionné dans la zone de liste à l'aide de c#?
J'ai essayé avec ceci:
listbox.Items.Add(combobox.SelectedItem);
et quelques autres permutations, mais il affiche toujours le Système.Les données.DataRowView ou quelque chose comme ça..
EDIT: roblem était coused par ce 2
lbList.DisplayMember = "hm";
lbList.ValueMember = "ID";
- Cela devrait fonctionner, si vous cochez&exclure null premier.
- Il fonctionne, mais affiche la chaîne "Systm.Les données.DataRowView"
- Ce qui aurait été très précieuses informations à inclure dans votre question :-{
InformationsquelleAutor Ante | 2009-11-12
Vous devez vous connecter pour publier un commentaire.
Vous devez définir "ne fonctionne pas". Quel est le problème?
Cela fonctionne exemple fonctionne très bien. Pour utiliser l'objet (décommenter les lignes) assurez-vous de définir le
DisplayMember
bien, sachez que je suis de ne pas avoir à jeter parce que je utiliser cette propriété.L'élément sélectionné de la zone de liste déroulante est un DataRowView, et la zone de liste est l'appel de
DataRowView.ToString()
de travailler sur ce qui est à afficher.Vous pouvez soit
object
valeur de retour deComboBox.SelectedItem
àDataRowView
, et ajouter de la valeur de la colonne que vous souhaitez afficher. (c'est à direlistbox.Items.Add(((DataRowView)combobox.SelectedItem).FieldName);
ToString()
plus. C'est probablement quelque chose que vous avez déjà fait pour votre comboxbox, sinon il serait également l'affichage de "Système.Les données.DataRowView".Vous pouvez facilement obtenir à l' (non typé) ligne:
Après ça dépend de ce que la colonne dont vous avez besoin, si vous connaissez le nom de la Colonne:
Ante je pense que le problème vient de la zone de liste déroulante.SelectedItem, il renvoie un Objet et dans votre cas, cet Objet se trouve être un Système.Les données.DataRowView. Je pense que vous aurez besoin de jeter la zone de liste déroulante.selectedItem à une valeur. Je suis un VB mec, donc pas sûr de la syntaxe de C#, mais en VB que nous allions faire quelque chose comme ceci:
avec foo être ce que jamais la valeur que vous souhaitez passer à la zone de liste.
Une autre option qui pourrait fonctionner, si votre intention est d'inclure la valeur de la liste déroulante dans la zone de liste est à utiliser:
ce retourne et l'Objet, mais c'est en fait l'objet est affiché dans la zone de liste déroulante le temps que ce soit un string, int, etc. Pas sûr si c'est utile mais j'ai dû faire quelque chose de très semblable à cela dans le passé et c'est la solution que j'ai trouvé.