从组合框中将符号值与枚举符号转换为另一个类

时间:2014-10-15 08:32:30

标签: c#

我试图从保存枚举值的组合框中签名选定的值。

这是我填充组合框的地方

    cmbPrio.Items.AddRange(Enum.GetNames(typeof(PriorityType.Prioritytypes)));
    cmbPrio.SelectedIndex = (int) PriorityType.Prioritytypes.Normal;

这是我试图在我的课程中设置值的地方

private void ReadInput()
        {
            if (String.IsNullOrEmpty(txtTodo.Text))
            {
                MessageBox.Show("Write something to do!");
            }
            else
            {
                currTasks.Priority = what code should go here??!
                currTasks.Description = txtTodo.Text;
                currTasks.TaskDate = dateTimePickerToDo.Value;
            }
        }

我的班级用枚举:

class PriorityType
{
    public enum Prioritytypes
    {
        Very_Important, 
        Important, 
        Normal, 
        Less_Importan
    }
}

我的课我的get:set是:

 private PriorityType priority;
        public PriorityType Priority
        {
            get
            {
                return this.priority;
            }
            set
            {
                this.priority = value;
            }
        }

1 个答案:

答案 0 :(得分:0)

直接用cumPrio填充枚举值:

cmbPrio.Items.AddRange(Enum.GetValues(typeof(Prioritytypes)).Cast<object>().ToArray());

因此您可以将其指定为枚举值:

currTasks.Priority = (Prioritytypes)cmbPrio.SelectedItem;

如果SelectedIndex与枚举类型后面的int值不对应,也可以这样做,例如

public enum Prioritytypes
{
    Very_Important = 1, 
    Important = 2, 
    Normal = 4, 
    Less_Importan = 8
}

或者如果您更改了组合框中的条目顺序。