Je sais comment ajouter des éléments à une zone de liste déroulante, mais est-il possible d'attribuer un ID unique à chaque élément? Je veux être capable de savoir quel ID est associé à chaque élément s'il est sélectionné. Merci!Id caché avec les éléments ComboBox?
6
A
Répondre
26
Les éléments d'une zone de liste déroulante peuvent être de n'importe quel type d'objet et la valeur affichée est la valeur ToString(). Par conséquent, vous pouvez créer une nouvelle classe avec une valeur de chaîne à des fins d'affichage et un ID masqué. Remplacez simplement la fonction ToString pour retourner la chaîne d'affichage.
Par exemple:
public class ComboBoxItem()
{
string displayValue;
string hiddenValue;
//Constructor
public ComboBoxItem (string d, string h)
{
displayValue = d;
hiddenValue = h;
}
//Accessor
public string HiddenValue
{
get
{
return hiddenValue;
}
}
//Override ToString method
public override string ToString()
{
return displayValue;
}
}
Et puis dans votre code:
//Add item to ComboBox:
ComboBox.Items.Add(new ComboBoxItem("DisplayValue", "HiddenValue");
//Get hidden value of selected item:
string hValue = ((ComboBoxItem)ComboBox.SelectedItem).HiddenValue;
Wow c'est cool, je l'ai fait un peu différemment, mais l'idée est la même, grâce une tonne! – sooprise
Ok, attends, maintenant comment obtenir la valeur cachée? ComboBox.SelectedItem. ??? – sooprise
Fondamentalement, cast est à ComboBoxItem, et ensuite obtenir la valeur cachée ... ((ComboBoxItem) ComboBox.SelectedItem) .hiddenValue; En supposant que hiddenValue était public. Généralement, vous créez un accesseur pour la propriété. –