Привязка выпадающего списка к перечислению 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, си шарп, перечисления, формы, списки




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.



Постепенное появление размытого изображения CSS
Реализация алгоритма Парето на C#
Почему бан на фейсбуке и как избежать его повторно