Enum как источник данных для CheckBoxList

1

Я создал объект enum как следующий

public enum Status
{
   Active,
   Inactive,
   Deleted
}

И я хочу связать эти enum с CheckBoxList.

Я пытался,

chkStatus.DataSource = Status;
chkStatus.DataBind();

Является ли это возможным? Если да, то как это сделать?

Теги:
wpf

3 ответа

3
Лучший ответ

пытаться:

    public enum Status
    {
       Active = 0,
       Inactive = 1,
       Deleted = 2
    }

И привязать CheckBoxList

checkboxID.DataSource = Enum.GetNames(typeof(Status));
checkboxID.DataBind();
  • 0
    Поскольку у меня есть некоторые проблемы, я не могу попробовать это ... Но все же я хочу знать, как назначить DataTextField и DataValueField ? И мне не нужны 0, 1, & 2 .
2

Учитывая это перечисление:

public enum Status
{
   Active=1,
   Inactive=2,
   Deleted=3
}

Тогда вы можете сделать это:

yourCheckBoxList.DataSource= Enum
        .GetValues(typeof(Status))
        .Cast<Status>()
        .Select (s =>new KeyValuePair<int,string>((int)s,s.ToString()))
        .ToList();

yourCheckBoxList.DataValueField="Key";
yourCheckBoxList.DataTextField="Value";
yourCheckBoxList.DataBind();
0
Dictionary<Status, string> dict = new Dictionary<Status, string>();
dct.Add(Status.Active, "Active");
dct.Add(Status.Inactive, "Inactive");
dct.Add(Status.Deleted, "Deleted");

BindingSource src = new BindingSource();
src.Datasource = dict;

((ListBox)YourCheckList).ValueMember = "key";
((ListBox)YourCheckList).DisplayMember = "value;
((ListBox)YourCheckList).Datasource = src;
((ListBox)YourCheckList).DataBind();

Надеюсь, этот фрагмент кода поможет вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню