ParvathySunu Ответов: 4

как связать combobox с перечислением


Привет,

Я хочу знать,как связать combobox с перечислением, тогда что такое источник данных,
отображение элемента и значения элемента.?????

Я просто попробовал с кодом
public Enum MyEnumType
{
     [Description("A")]
     A= 1,
     [Description("B")]
     B= 2,

}
 comboBox2.DataSource = Enum.GetValues(typeof(MyEnumType));
 comboBox1.DisplayMember = "Value"; 
 comboBox1.ValueMember = "Key"; 



Овации,
Парватисуну

[edit]добавлен блок кода - OriginalGriff[/edit]

4 Ответов

Рейтинг:
33

Sergey Alexandrovich Kryukov

Вы можете найти несколько длинный, но очень исчерпывающий ответ в двух моих статьях:

Типы перечисления не перечисляются! Работаем по кругу .Сетевые и языковые ограничения[^],
Человекочитаемые метаданные перечисления[^].


—СА


Рейтинг:
25

OriginalGriff

Здесь есть статья, объясняющая это: Привязка данных перечисление с описаниями[^]


Sergey Alexandrovich Kryukov

Мой 5. Тема этой статьи ближе к вопросу, чем моя.
--СА

Рейтинг:
2

Member 13626989

общедоступное перечисление MyEnumType
{
[Описание("A")]
А= 1,
[Описание("B")]
B= 2,
}



частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{
Dictionary<string, int> dictionary = новый словарь<string,int>();
foreach (int enumValue in Enum.GetValues(typeof(MyEnumType)))
{
словарь.Добавить(Перечисления.GetName(typeof(MyEnumType), enumValue), enumValue);
}

comboBox1.DisplayMember = "ключ";
comboBox1.ValueMember = "значение";
comboBox1.DataSource = new BindingSource(словарь, null);
}
Исправления, сделанные выше, не являются правильными


CHill60

Все, что вы сделали, это скопировали рабочее решение 7-летней давности и поместили код в событие загрузки формы. Как вы думаете, в каком смысле это решение?

Richard Deeming

Плагиат здесь не допускается. Сообщите о своем аккаунте как о "оскорбительном/тролльском".

Рейтинг:
15

ParvathySunu

Наконец-то у меня есть решение,оно работает.....

public Enum MyEnumType
{
[Описание("A")]
А= 1,
[Описание("B")]
B= 2,
}
Словарь в<строка,инт&ГТ; словарь=новый словарь&ЛТ;строки&ГТ;();

foreach (int enumValue in
Enum.GetValues(typeof(MyEnumType)))
{
словарь.Добавить(Перечисления.GetName(typeof(MyEnumType),enumValue),enumValue);
}

ComboBox1.DisplayMember = "Ключ";;
ComboBox1.ValueMember = "Значение";
ComboBox1.DataSource = new BindingSource(словарь,null);