从组合列表到枚举属性的选定枚举值

本文关键字:枚举 属性 列表 组合 | 更新日期: 2023-09-27 18:17:05

在form load时,将enum加载到combobox

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

现在我想从cmbVatMode(下拉列表)分配值给我的enum属性MyCustomVatMode

我尝试了MyCustomVatMode = cmbVatMode.SelectedValue;,但它不工作

从组合列表到枚举属性的选定枚举值

如果将DataSource设置为VATMode的列表,则SelectedValue将返回对象类型的引用。可以成功地强制转换为枚举。下一段代码演示了这一点。

VATMode MyCustomVatMode = (VATMode)cmbVatMode.SelectedValue;

例如,下一段代码将在每次更改组合框时打印到console enum:

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