0

ComboBoxEnum 型でバインドしています。
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);
}

しかし、上記は機能しません。その数値が必要です。

4

4 に答える 4

2

私はこれをテストしましたが、正常に動作します。ここでいくつかの変更が必要です。

まず、以下のような値でバインドする必要があります

custCmb.DataSource = Enum.GetValues(typeof(CategoryType));

次に、選択したものを次のように戻すことができます

private void custCmb_SelectedIndexChanged(object sender, EventArgs e)
{
    CategoryType selCustomizationType = (CategoryType)custCmb.SelectedValue;
    int result = (int)selCustomizationType;
}

列挙型は数値です。

GetNamesフィールド名を含む文字列配列を返します

GetValuesint配列を返します

于 2013-08-01T14:34:21.293 に答える
0

これを行うと、キャストできます:

CategoryType selCustomizationType =(CategoryType)Enum.Parse(typeof(CategoryType), custCmb.SelectedValue);
于 2013-08-01T14:43:01.133 に答える