ComboBox ID uns Bezeichnung zuweisen
-
Hallo,
bin noch Anfänger und habe daher eine (für Euch) recht triviale Frage, ich hoffe dennoch, dass mir hier jemand antwortet!
Möchte eine ComboBox mit mit einer ID und der zugehörigen Bezeichnung füllen, so dass der Benutzer beides angezeigt bekommt.
Hatte das so versucht, aber das klappt nicht, da ich die Methode überlade.
while (dr.Read()) { if (dr.IsDBNull(0) == false && dr.IsDBNull(1) == false) { li0.Text = dr.GetString(0) + " " + dr.GetString(1); li1.Text = dr.GetValue(0).ToString(); } } comboArtikel.Items.Add(li0.Text, li1.Text);
Falls das irgendwie klappt, wie kann ich dann bei Auswahl eines Artikels nur auf den Wert (oder die ID) zugreifen? Ohne den ganzen String mit Substring etc. bearbeiten zu müssen ...
Freue mich auf Eure Antwort! Danke!
-
Packe die ID und Bezeichnung in eine Klasse,überschreibe ToString damit die Bezeichnung zurück gegeben wird.
public class Artikel { public string ID; public string Bezeichnung; public override string ToString() { return Bezeichnung; } }
Dann füllst du deine Combobox mit der Klasse.
while (dr.Read()) { if (dr.IsDBNull(0) == false && dr.IsDBNull(1) == false) { Artikel new_artikel = new Artikel(); new_artikel.ID = dr.GetString(1); new_artikel.Bezeichnung = dr.GetValue(0).ToString(); comboArtikel.Item.Add(new_artikel); } }
Und über SelectedItem kommst du wieder an den ausgewählte Artikel
string id =((Artikel)comboArtikel.SelectedItem).ID;