enum Werte an Combobox binden – C#

Nachdem ich immer wieder mal gefragt werde wie man auf einfache weise enum Werte an Controls binden kann, hier unter dem Motto kurz und bündig ein Beispiel in C#.

Um die Werte eines Aufzählung’s Typs (enum) an eine ComboBox (oder auch andere Controls die eine DataSource Eigenschaft zur Verfügung stellen) zu binden genügt nachfolgender Code:

Hier ein Beispiel mit eigenem enum (funktioniert natürlich auch mit System Typen)

public enum AppHeightDrawMode
{
TrueHeightAll = 0,
FullHalfHourBlocksAll = 1,
EndHalfHourBlocksAll = 2,
FullHalfHourBlocksShort = 3,
EndHalfHourBlocksShort = 4,
}

comboBox1.DataSource = Enum.GetValues(typeof(AppHeightDrawMode));

Das Resultat sieht dann so aus:

image

11 Gedanken zu „enum Werte an Combobox binden – C#“

  1. Ist das mit dem SelectedIndex aber (als allgemeine Lösung) nicht gefährlich, ich kann den Enums ja schließlich auch beliebige Werte vergeben und Lücken lassen und alles…
    Besser: SelectedValue verwenden!

    sth_Weird

  2. wie kann ich die enums übersetzen? also dass in der combobox meine eigenen texte stehen, aber nach der auswahl der enum-wert zurückgegeben wird?

  3. Zum auslesen des Values würde sich das eher anbieten:

    int ValueNumber = (int)((AppHeightDrawMode)comboBox1.SelectedItem);

    Ist universeller, wenn der Index ungleich dem Value ist.

  4. Dies funktioniert wunderbar.
    Was wenn zum Beispiel die MessageBoxButton zurückgegeben werden sollte?
    Die nicht forlaufende Nummer enthält!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.