我有这样填充的组合框cmbBoxA
private void FillComboBox()
{
foreach (var a in Helpers.Helper.GetData())
{
cmbBoxA.Items.Add(a);
}
}
GetData有这段代码
public static List<VATMode> GetData()
{
List<VATMode> vatModes = Enum.GetValues(typeof(VATMode)).
Cast<VATMode>().ToList();
return vatModes;
}
现在我正在尝试使用
获取所选的组合框项目int sel = Convert.ToInt16(cmbBoxA.SelectedValue);
但它总是0?
更新: 枚举是
public enum VATMode { A = 1, B = 2, C = 3 };
答案 0 :(得分:2)
The Enum
public enum Status { Active = 0, Canceled = 3 };
从中设置下拉值
cbStatus.DataSource = Enum.GetValues(typeof(Status));
从所选项目中获取枚举
Status status;
Enum.TryParse<Status>(cbStatus.SelectedValue.ToString(), out status);
我希望它会对你有所帮助.. :)
答案 1 :(得分:1)
ComboBox.SelectedValue
是数据绑定而你的ComboBox
没有数据包时,会使用 private void FillComboBox()
{
cmbBoxA.DataSource = Helpers.Helper.GetData();
}
。
更改您的代码:
VATMode value;
Enum.TryParse<VATMode>(cbStatus.SelectedValue.ToString(), out value);
并获得价值:
int
然后您可以将其投射到{{1}}