Istnieje taka mozliwosc. Metoda Add, ktora uzywasz do dodawania elementow w comboBoxie przyjmuje parametr typu object, oznacza to ze mozesz tam umiescic nie tylko stringi ale dane o dowolnym typie.
Pierwsza opcja jest utworzenie sobie klasy, np. ComboBoxItem (byc moze juz taka istnieje w .NET) ktora bedzie przechowywac zarowno tekst, ktory bedziesz wyswietlal jak i interesujaca Cie wartosc z bazy danych. Przeciazysz w takiej klasie metode ToString aby zwrocila tekst przyjazny dla uzytkownika i sprawa zalatwiona. Przyklad klasy ComboBoxItem:
public class ComboBoxItem
{
private string itemTitle;
private string itemValue;
public ComboBoxItem(string title, string value)
{
this.Title = title;
this.Value = value;
}
public string Title
{
get { return this.itemTitle; }
set { this.itemTitle = value; }
}
public string Value
{
get { return this.itemValue; }
set { this.itemValue = value; }
}
public override string ToString()
{
return this.Title;
}
}
Dodawanie elementow:
comboBox.Items.Add(new ComboBoxItem("Laptop", "dest1"));
Pobieranie elementow
ComboBoxItem item = (ComboBoxItem)comboBox.Items[0];
string title = item.Title; //wartosc wyswietlana
string dbValue = item.Value; //wartosc w bazie;
Sposob drugi polega na wykorzystaniu elementu KeyValuePair w nastepujacy sposob:
Dodawanie elementow:
comboBox.DisplayMember = "Value"; // wywolac tylko raz
comboBox.Items.Add(new KeyValuePair<string, string>("dest1", "Laptop"));
Pobieranie elementow
KeyValuePair<string, string> item =(KeyValuePair<string, string>)comboBox.Items[0];
string title = item.Value; //wartosc wyswietlana
string dbValue = item.Key; //wartosc w bazie;
Przyjalem ze zarowno tekst wyswietlany jak i wartosc z bazy danych sa stringami. Mozesz oczywiscie dopasowac rozwiazanie do swoich potrzeb, zmienic typy, uzyc typow generycznych itp. itd. To tylko idea.