C#, WinForms, используем перечисление (enumeration) как источник данных для ComboBox

Пример перечисления

public enum Gender    {  Female = 0, Male = 1, Unknown = 2  }

Возможно несколько вариантов подцепления его к комбо-боксу, в данном случае создам полноценный комбобокс с ValueMember и DisplayMember с которым можно использовать привычный код, но в оба поля положу строковое имя. При желании использовать числовые коды для Value можно просто изменить его привязку:

_genderComboBox.DataSource = Enum.GetValues(typeof(Gender))
    .Cast<Gender>()
    .Select(p => new { Name = Enum.GetName(typeof(Gender), p), Value = (int)p })
    .ToList();

_genderComboBox.DisplayMember = "Name";
_genderComboBox.ValueMember = "Name";

Проставление SelectedMember по перечислению делается так:

_genderComboBox.SelectedValue = Gender.Male.ToString();

Получение выбранного значения в виде члена перечисления

Gender selGender = (Gender)Enum.Parse(typeof(Gender), _genderComboBox.SelectedValue.ToString());

Дополнительная информация:

  1. C# Windows -How to get the Enum value from ComboBox
  2. How to bind an enumeration to combobox
  3. Binding an enum to a WinForms combo box, and then setting it
  4. Enum.GetName Method
  5. Enum.Parse Method

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>