Скрытый идентификатор с элементами ComboBox? - PullRequest
7 голосов
/ 21 сентября 2010

Я знаю, как добавить элементы в ComboBox, но есть ли возможность назначить уникальный идентификатор каждому элементу? Я хочу знать, какой идентификатор связан с каждым элементом, если он когда-либо выбран. Спасибо!

1 Ответ

29 голосов
/ 21 сентября 2010

Элементы в выпадающем списке могут иметь любой тип объекта, и отображаемое значение является значением ToString ().

Таким образом, вы можете создать новый класс, который имеет строковое значение для отображения и скрытый идентификатор. Просто переопределите функцию ToString, чтобы вернуть отображаемую строку.

Например:

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;
   }
}

А потом в вашем коде:

//Add item to ComboBox:
ComboBox.Items.Add(new ComboBoxItem("DisplayValue", "HiddenValue");

//Get hidden value of selected item:
string hValue = ((ComboBoxItem)ComboBox.SelectedItem).HiddenValue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...