如何获取与枚举绑定的组合框的选定值
本文关键字:组合 绑定 枚举 何获取 获取 | 更新日期: 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);