从组合列表中选择枚举值到枚举属性

时间:2013-06-06 07:39:44

标签: c# .net

在表单加载时,我将枚举加载到组合框

private void Form2_Load(object sender, EventArgs e)
{
    List<VATMode> vatModes = Enum.GetValues(typeof(VATMode)).
         Cast<VATMode>().ToList();           
    cmbVatMode.DataSource = vatModes;
}

现在我想将cmbVatMode(下拉列表)中的值分配给我的枚举属性MyCustomVatMode

我尝试使用MyCustomVatMode = cmbVatMode.SelectedValue;,但它无效。

1 个答案:

答案 0 :(得分:1)

如果您将DataSource设置为VATMode列表,SelectedValue将返回对象类型的引用。可以成功地输入你的枚举。下一代码演示了这一点

VATMode MyCustomVatMode = (VATMode)cmbVatMode.SelectedValue;

例如,每次更改组合框时,下一个代码将打印到控制台枚举:

cmbVatMode.SelectedValueChanged += (s, a) => 
{
    VATMode selected = (VATMode)cmbVatMode.SelectedValue;
    Console.WriteLine(selected);
};