2013-02-23 12 views
5

Ich habe eine wirklich einfache Frage zu C# und WPF zu stellen. Meine Frage wird nach diesem Versuch von mir folgen:Hinzufügen von Enum-Werten zu einer einfachen Combobox

private void Window_Loaded(object sender, RoutedEventArgs e) 
     { 
      foreach (var item in Races) 
      { 
       cbRace.Items.Add(item); 
      } 
     } 
    } 

    enum Races 
    { 
     Human=1, 
     Dwarf, 
     Elf, 
     Orc, 
     Goblin, 
     Vampire, 
     Centaur 
    } 

Ok so, meine Frage ist, wie kann ich die Werte (zum Beispiel Mensch, Zwerg, Elf .....) In das Kombinationsfeld hinzuzufügen: cbRace? Entschuldigung, ich bin neu in C#, also würde ich mich freuen, wenn mir jemand helfen kann :), vielen Dank im Voraus.

+0

nicht der obige Code ist für Sie arbeiten? – mihirj

Antwort

16
private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     foreach (var item in Enum.GetValues(typeof(Races))) 
     { 
      cbRace.Items.Add(item); 
     } 
    } 
    enum Races 
    { 
     Human = 1, 
     Dwarf, 
     Elf, 
     Orc, 
     Goblin, 
     Vampire, 
     Centaur 
    } 
+0

Enum.GetValues ​​gibt Ihre Typenlistenliste zurück. –

+0

Danke sooo viel John! es funktionierte für mich, danke :) – user2061405

14

sollten Sie in der Lage sein, so etwas zu tun:

cbRace.DataSource = Enum.GetValues(typeof(Races)); 

Kasse this Antwort für weitere Informationen über die Konfiguration und die ENUM-Werte abgerufen werden.

+0

Hinweis: In WPF ist es ItemsSource-Eigenschaft. – LPL

+0

Dies ist die beste Antwort !! –

0

Verwendung dieses

cbRace.Datasource = Enum.GetValues(typeof(Races)); 

Ihre Enum auf die Combobox Databind und dann selectedValue und SelectedText Eigenschaften Ihrer Combobox verwenden, um Namen und Werte retreive;

5

Dies wäre vielleicht der einfachste Weg, die ComboBox Elemente zu setzen:

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    cbRace.ItemsSource = Enum.GetValues(typeof(Races)); 
    cbRace.SelectedIndex = 0; 
} 

Es ist nicht notwendig, um Schleife ist über die ENUM-Werte, stellen nur die ItemsSource Eigenschaft.

2

Dies ist keine bevorzugte Lösung als Clemens Sie, dass bereits gegeben hat, aber wenn man Sie direkt tun, um ein

<ComboBox> 
    <urCode:Races>Human</urCode:Races> 
    <urCode:Races>Dwarf</urCode:Races> 
    <urCode:Races>Elf</urCode:Races> 
</ComboBox> 

Sie könnte auch eine IValueConverter implment, dass, wenn in der XAML hinzufügen wollte auch könnte gebunden Typ, gibt die Enum.GetValues ​​

0
cmbUserType.Items.AddRange(core.Global.ToObjectArray(Enum.GetValues(typeof(STATUS)))); 
public enum STATUS { INACTIVE, ACTIVE } 
+0

Ich bitte Sie, bitte fügen Sie weitere Kontext um Ihre Antwort hinzu. Code-Only- oder Link-Only-Antworten sind schwer zu verstehen. Es wird sowohl dem Fragesteller als auch zukünftigen Lesern helfen, wenn Sie in Ihrem Beitrag weitere Informationen hinzufügen können. – RBT

1

kürzesten Weg Enum Werte hinzufügen C#

class User{ 

public enum TYPE { EMPLOYEE, DOCTOR, ADMIN }; 

} 
COMBOBOX in

// Fügen Sie diese Klasse zu Ihrem Formularladeereignis des Formulars Cunstructor

cmbUserType.Items.AddRange(Enum.GetNames(typeof(User.TYPE))); 
Verwandte Themen