0

我正在绑定ComboBoxEnum 类型。
我想在 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);
}

但以上不起作用我想要它的数值。

4

4 回答 4

2

我已经对此进行了测试,并且效果很好。您需要在这里进行一些更改。

首先,您需要绑定如下值

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 数组

于 2013-08-01T14:34:21.293 回答
1

对于您必须使用的绑定:

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

并具有选定的值:

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
   CategoryType selCustomizationType = (CategoryType)custCmb.SelectedValue;
}
于 2013-08-01T14:30:48.990 回答
0

改用selectedText_

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
   CategoryType selCustomizationType = Enum.Parse(CategoryType, custCmb.SelectedText);
}
于 2013-08-01T14:32:18.897 回答
0

如果你这样做,你可以直接施放它:

CategoryType selCustomizationType =(CategoryType)Enum.Parse(typeof(CategoryType), custCmb.SelectedValue);
于 2013-08-01T14:43:01.133 回答