これらを含む enumHelper クラスがあります。
public static IList<T> GetValues()
{
IList<T> list = new List<T>();
foreach (object value in Enum.GetValues(typeof(T)))
{
list.Add((T)value);
}
return list;
}
と
public static string Description(Enum value)
{
Attribute DescAttribute = LMIGHelper.GetAttribute(value, typeof(DescriptionAttribute));
if (DescAttribute == null)
return value.ToString();
else
return ((DescriptionAttribute)DescAttribute).Description;
}
私の列挙型は次のようなものです:
public enum OutputType
{
File,
[Description("Data Table")]
DataTable
}
ここまでは順調ですね。前の仕事はすべて順調です。ここで、BindingList> を返す新しいヘルパーを追加したいので、次を使用して任意の列挙型を任意のコンボにリンクできます。
BindingList<KeyValuePair<OutputType, string>> list = Enum<OutputType>.GetBindableList();
cbo.datasource=list;
cbo.DisplayMember="Value";
cbo.ValueMember="Key";
そのために私は追加しました:
public static BindingList<KeyValuePair<T, string>> GetBindingList()
{
BindingList<KeyValuePair<T, string>> list = new BindingList<KeyValuePair<T, string>>();
foreach (T value in Enum<T>.GetValues())
{
string Desc = Enum<T>.Description(value);
list.Add(new KeyValuePair<T, string>(value, Desc));
}
return list;
}
しかし、「Enum.Description(value)」はコンパイルさえされていません: 引数 '1': 'T' から 'System.Enum' に変換できません
どうやってやるの?それは可能ですか?
ありがとうございました。