0

我有像这样填充的组合框 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 };
4

2 回答 2

2

枚举

public enum Status { Active = 0, Canceled = 3 }; 

从中设置下拉值

cbStatus.DataSource = Enum.GetValues(typeof(Status));

从所选项目中获取枚举

Status status; 

Enum.TryParse<Status>(cbStatus.SelectedValue.ToString(), out status);

我希望它会帮助你.. :)

于 2013-07-05T11:05:38.630 回答
1

ComboBox.SelectedValue当您ComboBox的数据绑定而您的不是数据绑定时使用。

像这样更改您的代码:

private void FillComboBox()
{
     cmbBoxA.DataSource = Helpers.Helper.GetData();
}

并获得价值:

VATMode value;
Enum.TryParse<VATMode>(cbStatus.SelectedValue.ToString(), out value);

然后你可以将它投射到int

于 2013-07-05T11:05:53.627 回答