如何获取与枚举绑定的组合框的选定值

本文关键字:组合 绑定 枚举 何获取 获取 | 更新日期: 2023-09-27 18:25:46

我正在将ComboBox与Enum类型绑定
我想在ComboBox的选定索引更改上获得Enum的选定值。

我试着这样做,但没有用。

枚举类似于此

CategoryType
{
    T=1, 
    D, 
    S
}

这就是我填充组合框的方式

custCmb.DataSource = Enum.GetNames(typeof(CategoryType));

所选索引更改事件如下所示。

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
   categoryType selCustomizationType = Enum.Parse(CategoryType, custCmb.SelectedValue);
}

但是上面的不起作用,我想要这个数值。

如何获取与枚举绑定的组合框的选定值

我已经测试过了,它运行良好。你需要在这里做一些改变。

首先,你需要与下面的值绑定

custCmb.DataSource = Enum.GetValues(typeof(CategoryType));

然后您可以将所选的作为取回

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
    CategoryType selCustomizationType = (CategoryType)custCmb.SelectedValue;
    int result = (int)selCustomizationType;
}

枚举是数字

GetNames将返回一个包含字段名的字符串数组

GetValues将返回一个int数组

对于必须使用的绑定:

custCmb.DataSource = Enum.GetValues(typeof(CategoryType));

并具有选定的值:

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
   CategoryType selCustomizationType = (CategoryType)custCmb.SelectedValue;
}

使用selectedText代替

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
   CategoryType selCustomizationType = Enum.Parse(CategoryType, custCmb.SelectedText);
}

如果你这样做,你可以直接投射它:

CategoryType selCustomizationType =(CategoryType)Enum.Parse(typeof(CategoryType), custCmb.SelectedValue);