私はユーザーコントロールを持っています。これは実際にはドロップダウンリストのラッパーです。
私は次のようなタイプを設定しました:
public Type ListType { get; set; }
次に、このタイプに基づいてドロップダウン リスト項目を作成してみてください。
これが私の最初の試みです:
void SetOptions()
{
DropDownList.Items.Clear();
var options = Enum.GetNames(ListType).ToList();
options.ThrowNullOrEmpty("options");
foreach (var s in options)
{
var e = Enum.Parse(ListType, s) as Enum;
var item = new ListItem(e.Description(), s);
DropDownList.Items.Add(item);
}
}
ただし、これが次のようにできるかどうかは疑問でした。
void SetOptions()
{
DropDownList.Items.Clear();
var options = Enum.GetValues(ListType); // need to cast this to type of ListType
foreach (var o in options)
{
var item = new ListItem(o.Description(), o.ToString());
DropDownList.Items.Add(item);
}
}
正しい列挙型にキャストされた値のリストを取得する方法がわかりません。
何か案は?