C# - récupérer la valeur sélectionnée à partir d'une zone de liste déroulante
J'ai un comboBox avec ValueMember = ID
et DisplayMember = Name
. J'ai besoin de la valeur qui est associée à ce nom si je fais quelque chose comme ceci:
if (cboTypeOfMaterial.SelectedIndex != -1)
{
string temp = cboTypeOfMaterial.SelectedValue.ToString();
//More code here...
}
Qui renvoie le ID
valeur sous forme de chaîne. Par exemple: "7".
Si j'essaie :
if (cboTypeOfMaterial.SelectedIndex != -1)
{
string temp = cboTypeOfMaterial.DisplayMember.ToString();
//More code here...
}
- Je obtenir de la chaîne Name
qui est la clé.
Et ce dont j'ai besoin est d'obtenir la valeur de l'élément sélectionné de la Name
- simplement cboTypeOfMaterial.SelectedItem.ToString() devrait également fonctionner. Lui donner un essai.
Vous devez vous connecter pour publier un commentaire.
SelectedValue
sera de retour la valeur de la propriété est définie dansValueMember
,SelectedItem
sera de retour l'ensemble de l'objet qui est sélectionné, si vous voulez obtenir une autre valeur autre que votreSelectedValue
vous devez lancer l'objet dans votreComboBox
ensuite, vous pouvez accéder à votreName
de la propriété.Essayez d'accéder à l'élément via
SelectedItem
qui vous donnera l'ensemble de l'objet associé à cette entrée, puis vous pouvez accéder aux propriétés dont vous avez besoin, dans votre casID
.Ce que vous pouvez faire est de créer une classe personnalisée pour les entrées dans la zone de liste déroulante. Cela peut ressembler à:
Ensuite, vous pouvez obtenir sélectionnés ComboBoxItem par le code suivant:
Je sais que c'est une vieille question, mais je suis surpris que personne n'a mentionné:
qui renvoie le texte de la représentation de l'élément sélectionné (c'est à dire la
DisplayMember
) et est utile dans les cas impliquant une donnéesComboBox
, ou toutListControl
pour cette question.Je pense que vous pouvez aussi utiliser la propriété Text, mais ce n'est pas une solution sympa. la meilleure solution est ce que @dutzu est suggéré.