Wiem, jak dodawać elementy do ComboBox, ale czy istnieje i tak, aby przypisać unikalny identyfikator do każdego przedmiotu? Chcę wiedzieć, który identyfikator jest powiązany z każdym elementem, jeśli jest on kiedykolwiek wybrany. Dzięki!Ukryty identyfikator z elementami ComboBox?
6
A
Odpowiedz
26
Pozycje w combobox mogą być dowolnego typu obiektu, a wyświetlaną wartością jest wartość ToString().
Można więc utworzyć nową klasę, która ma wartość ciągu dla celów wyświetlania i ukryty identyfikator. Po prostu zastąp funkcję ToString, aby zwrócić ciąg znaków.
Na przykład:
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;
}
}
A potem w kodzie:
//Add item to ComboBox:
ComboBox.Items.Add(new ComboBoxItem("DisplayValue", "HiddenValue");
//Get hidden value of selected item:
string hValue = ((ComboBoxItem)ComboBox.SelectedItem).HiddenValue;
Wow to jest cool, zrobiłem to trochę inaczej, ale idea jest taka sama, dzięki mnóstwo! – sooprise
Ok, czekaj, teraz jak uzyskać ukrytą wartość? ComboBox.SelectedItem. ??? – sooprise
Zasadniczo rzut jest na ComboBoxItem, a następnie uzyskać ukrytą wartość ... ((ComboBoxItem) ComboBox.SelectedItem) .hiddenValue; Zakładając, że hiddenValue była publiczna. Zwykle tworzysz akcesor dla tej właściwości. –