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.SelectedValueComboBoxあなたがデータバインドされていて、あなたがそうでない場合に使用されます。

コードを次のように変更します。

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 に答える