我使用Enum类型绑定ComboBox
我希望在ComboBox的选定索引更改时获得Enum的选定值。
我正在尝试这样但它不起作用。
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);
}
但是上面的方法不起作用我想要它的数值。
答案 0 :(得分: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数组
答案 1 :(得分:1)
对于你必须使用的绑定:
custCmb.DataSource = Enum.GetValues(typeof(CategoryType));
并拥有所选的值:
private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
CategoryType selCustomizationType = (CategoryType)custCmb.SelectedValue;
}
答案 2 :(得分:0)
使用selectedText
代替
private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
CategoryType selCustomizationType = Enum.Parse(CategoryType, custCmb.SelectedText);
}
答案 3 :(得分:0)
如果你这样做,你可以施展它:
CategoryType selCustomizationType =(CategoryType)Enum.Parse(typeof(CategoryType), custCmb.SelectedValue);