VC++;CLI/CLR,winforms组合框将数据源绑定到枚举

VC++;CLI/CLR,winforms组合框将数据源绑定到枚举,winforms,visual-c++,enums,datasource,Winforms,Visual C++,Enums,Datasource,我有一个这样的枚举 enum class distance {ten=10,twenty=20}; 以及一个组合框,其数据源绑定到此枚举,如下所示: this->comboBox1->DataSource=Enum::GetValues(distance::typeid) 我期望上面的结果是10,20,但我得到的却是10,20 如何在组合框中显示值而不是名称?更新:您想要的是整数值,而不是名称。这仍然需要Enum::GetValues()来获取枚举值,但它们必须强制转

我有一个这样的枚举

enum class distance 

    {ten=10,twenty=20};
以及一个组合框,其数据源绑定到此枚举,如下所示:

this->comboBox1->DataSource=Enum::GetValues(distance::typeid)
我期望上面的结果是10,20,但我得到的却是10,20


如何在组合框中显示值而不是名称?更新:您想要的是整数值,而不是名称。这仍然需要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;
        }
enum类距离{ten=10,two=20};
表格1(无效)
{
初始化组件();
数组^values=Enum::GetValues(distance::typeid);
数组^display=gcnew数组(值->长度);
对于(int ix=0;ixLength;++ix){
显示[ix]=(int)值->获取值(ix);
}
comboBox1->DataSource=显示;
}

其中Form1(void)是form类的构造函数。

GetNames也给出了相同的结果。当然,不可能得到相同的结果。当我尝试它时,它工作得很好,组合框下拉列表中填充的是字符串,而不是数字。我猜不出为什么当你尝试这个时它不起作用,用你尝试过的代码更新你的问题。我的代码在上面。GetNames为我提供字符串10、20的名称,GetValues(distance::typeid)也是如此。我在下拉框中输入值10、20,而不是名称,但GetValues也为我提供名称。如何在此组合框中设置selectedVAlue或selectedItem?