Wert in Combobox anzeigen



  • Hallo mal wieder,

    wahrscheinlich mal wieder ein einfaches Problem, aber ich komme nicht auf die Lösung. 😞

    Über eine Combobox wähle ich ein bestimmtes Item aus, das ich editieren möchte.
    Bis auf einen Eintrag, kann ich alle Daten des Items an Textboxen übergeben.
    Der einzelne Eintrag beschreibt den Status des Items.

    Mögliche Zustände:
    A = gültig (ID: 1)
    B = Auslaufmodell (ID: 2)
    C = ungültig (ID: 3)

    Beim Editieren wird die Combobox für der Status wieder mit den drei möglichen Zuständen gefüllt.
    Wenn ich nun ein Item auswähle, das den Status B = Auslaufmodell besitzt, soll dieser Eintrag vorselektiert in der Combobox angezeigt werden.

    Folgendes hab ich versucht, es wurde aber nie ein Wert selektiert in der Combobox angezeigt.

    cbEditItemStatus.SelectedItem = cbEditItemStatus.Items.IndexOf("B = Auslaufmodell");
    
    cbEditItemStatus.SelectedItem = cbEditItemStatus.Items.IndexOf("2");
    
    cbEditItemStatus.SelectedItem = cbEditItemStatus.Items.IndexOf(2);
    

    Was ist da falsch? Bzw. was muss ich als value übergeben?
    Es wird ja etwas vom Typ object erwartet?! Muss ich davor noch eine Typumwandlung machen?!
    Irgendwie stehe ich auf dem Schlauch ... 😕
    Würde mich über Eure Hilfe freuen!


  • Administrator

    1. WinForms oder WPF?
    2. Von welchem Typ sind die Objekte in der ComboBox Liste?
    3. SelectedItem muss das Objekt sein, welches du selektieren willst, und nicht der Index davon. Sonst müsstest du SelectedIndex verwenden.

    Grüssli



  • Entschuldige die späte Antwort!

    1. WinForms
    2. Die Objekte kommen aus einer Datenbank (ID ist vom Typ Int32, Status vom Typ Varchar)
    3. Würde dann wie folgt lauten?!

    cbEditPartStatus.SelectedIndex = cbEditPartStatus.Items.IndexOf(2);
    

  • Administrator

    Sonnenlichtfee schrieb:

    2. Die Objekte kommen aus einer Datenbank (ID ist vom Typ Int32, Status vom Typ Varchar)

    Das ist nicht die Antwort auf meine Frage. Ich fragte nach dem Typ. Die Klasse, die Struktur oder was auch immer du verwendest.

    Sonnenlichtfee schrieb:

    3. Würde dann wie folgt lauten?!

    cbEditPartStatus.SelectedIndex = cbEditPartStatus.Items.IndexOf(2);
    

    Keine Ahnung, kommt darauf an, was du für Objekte in der ComboBox hast. Schau dir doch die Dokumentation zu IndexOf an:
    http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.objectcollection.indexof.aspx

    Was hast du für Objekte in die ComboBox.Items Collection reingetan? Oder hast du das direkt über DataSource an die Datenbank gebunden? Dann musst du über die entsprechende DataView gehen. Dort den Index der zu selektierenden DataRowView holen und dem SelectedIndex der ComboBox zuweisen.

    Grüssli



  • @Dravere
    Danke! Habs hin bekommen!


Anmelden zum Antworten