Привязка выпадающего списка к перечислению C#
Перечисления предоставляют полезный способ создания группы связанных констант, которые можно рассматривать как строки или целочисленные значения. Когда эти значения привязаны к выпадающему списку, пользователь может выбрать опцию непосредственно из списка перечисления.
Класс Enum
Перечисления не реализуют интерфейсы, необходимые для их привязки к элементам управления Windows. Чтобы значения из перечисления можно было использовать для привязки только для чтения, их необходимо перенести в массив. Это преобразование может быть легко выполнено с помощью методов класса System.Enum. В этой заметке мы создадим очень простое приложение Windows Forms, которое использует один из этих методов для привязки элемента управления ComboBox к перечислению и извлечения выбранной константы из списка.
Создание формы
Для начала создайте новое приложение Windows Forms. Добавьте в форму поле со списком (ComboBox) "ColourList" и кнопку "OKButton". Измените текст кнопки на "ОК". Заполненная форма должна быть похожа на ту, что изображена ниже:
Привяжем выпадающий список к форме теста перечисления
Создание перечисления
Перечисление, которое будет привязано к выпадающему списку, будет содержать восемь констант. Каждый будет иметь определенный цвет. Чтобы создать перечисление, добавьте в проект следующий код:
public enum Colour { Black, White, Red, Yellow, Green, Cyan, Blue, Magenta }Добавление привязки
Для получения массива значений для привязки к выпадающему списку будет использоваться статический метод getValues класса Enum. Этот метод требует, чтобы тип перечисления, подлежащего преобразованию в массив, передавался в качестве параметра. Возвращаемый массив затем может быть назначен свойству источника данных выпадающего списка.
Чтобы привязать список цветов к элементу управления, добавьте следующую строку кода в событие загрузки формы. Это создаст массив и привяжет его к выпадающему списку. Хотя каждое значение в списке является цветом, будет отображаться название цвета, так как это результат метода toString константы.
ColourList.DataSource = Enum.GetValues(typeof(Colour));Если вы запустите программу на этом этапе, вы должны увидеть список значений в элементе управления выпадающего списка.
Получение выбранного значения
Выбранное в данный момент значение цвета можно получить с помощью свойства SelectedItem выпадающего списка. Свойство возвращает объект, который должен быть приведен к цветовому типу для полного опроса.
Примечание: Если поле со списком настроено так, чтобы пользователь мог вводить данные в элемент текстового поля, он может ввести значение, которого нет в списке. В этом случае свойство SelectedItem будет равно null.
Чтобы завершить пример, дважды щелкните кнопку ОК в конструкторе форм, чтобы добавить обработчик события нажатия кнопки. Измените событие следующим образом:
private void OKButton_Click(object sender, EventArgs e) { Colour col = (Colour)ColourList.SelectedItem; string message = string.Format("{0} ({1})", col.ToString(), (int)col); MessageBox.Show(message, "Selection"); }Когда пользователь нажимает кнопку ОК, переменная col заполняется константой перечисления, выбранной в выпадающем
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.