добавление значений enum в простой combobox
У меня есть очень простой вопрос о C# и WPF.
Мой вопрос последует после этой моей попытки:
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
}
Итак, мой вопрос заключается в том, как я буду добавлять значения (например, человек, гном, эльф....) в поле со списком: cbRace? извините, что я новичок в C#, поэтому я был бы очень признателен, если бы кто-то мог мне помочь :), заранее спасибо.
7 ответов:
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 }
Вы должны быть в состоянии сделать что-то вроде этого:
cbRace.DataSource = Enum.GetValues(typeof(Races));Checkout Этот ответ содержит дополнительную информацию о настройке и извлечении значений enum.
Это, пожалуй, самый простой способ установить элементы ComboBox:
private void Window_Loaded(object sender, RoutedEventArgs e) { cbRace.ItemsSource = Enum.GetValues(typeof(Races)); cbRace.SelectedIndex = 0; }Нет необходимости перебирать значения перечисления, просто установите
ItemsSourceсобственность.
Это не является предпочтительным решением, поскольку Клеменс уже дал вам это, но если вы хотите добавить в XAML напрямую, вы также можете сделать
<ComboBox> <urCode:Races>Human</urCode:Races> <urCode:Races>Dwarf</urCode:Races> <urCode:Races>Elf</urCode:Races> </ComboBox>Можно также имплицировать IValueConverter, который при привязке к типу возвращает перечисление.GetValues
Самый короткий способ добавления значений Enum в Combobox в C#
class User{ public enum TYPE { EMPLOYEE, DOCTOR, ADMIN }; }/ / Добавьте этот класс В событие загрузки формы Form Cunstructor
cmbUserType.Items.AddRange(Enum.GetNames(typeof(User.TYPE)));
Используйте это
cbRace.Datasource = Enum.GetValues(typeof(Races));Привязать перечисление к combobox и затем использовать свойства selectedValue и selectedText вашего combobox для восстановления имен и значений;
cmbUserType.Items.AddRange(core.Global.ToObjectArray(Enum.GetValues(typeof(STATUS)))); public enum STATUS { INACTIVE, ACTIVE }
Comments