VC ++ CLI / CLR,winforms combobox绑定数据源到枚举

时间:2011-03-08 05:50:21

标签: winforms visual-c++ enums datasource

我有这样的枚举

enum class distance 

    {ten=10,twenty=20};

和一个组合框,其数据源绑定到此枚举为:

this->comboBox1->DataSource=Enum::GetValues(distance::typeid)

我预计上面会返回10,20,但我会得到十,二十。

如何在组合框中显示值而不是名称?

1 个答案:

答案 0 :(得分:0)

更新:您需要整数值,而不是名称。这仍然需要Enum :: GetValues()来获取枚举值,但是必须将它们强制转换为int,以便ToString()覆盖不生成名称。看起来像这样:

        enum class distance {ten=10,twenty=20};

        Form1(void)
        {
            InitializeComponent();
            Array^ values = Enum::GetValues(distance::typeid);
            array<int>^ display = gcnew array<int>(values->Length);
            for (int ix = 0; ix < values->Length; ++ix) {
                display[ix] = (int)values->GetValue(ix);
            }
            comboBox1->DataSource = display;
        }

Form1(void)是表单类的构造函数。