ということで以下。
①Enum宣言
----------------------------------------------
public enum enumHito : byte
{
[Display(Name = "太郎")]
Tarou = 12334,
[Display(Name = "花子")]
Hanako = 19483,
}
----------------------------------------------
②宣言したEnumから属性:NameをGetする共通関数を作成しておく。
----------------------------------------------
//属性:Nameを取得
public static class GetAttribute
{
public static string Name(object obj)
{
var fieldInfo =
obj.GetType().GetField(obj.ToString());
var descriptionAttributes =
fieldInfo.GetCustomAttributes(typeof(DisplayAttribute), false) as DisplayAttribute[];
if (descriptionAttributes != null
&& descriptionAttributes.Length > 0)
{
return
descriptionAttributes[0].Name;
}
else
{
return string.Empty;
}
}
}
----------------------------------------------
③②を使って①情報からドロップダウン候補をデータバインドする。
----------------------------------------------
var data = new List<Tuple<int, string>>();
foreach (enumKenaskuShubetsu row in Enum.GetValues(typeof(enumHito)))
{
data.Add(new Tuple<int, string>((int)row, GetAttribute.Name(row)));
}
ddlhoge.DataValueField
= "item1";
ddlhoge.DataTextField
= "item2";
ddlhoge.DataSource =
data;
ddlhoge.DataBind();
----------------------------------------------