3
我遇到枚举说明问题。 我想让dataGrid显示枚举描述,而不是枚举的“ToString()”。DataGridView中的枚举说明
enum DirectionEnum
{
[Description("Right to left")]
rtl,
[Description("Left to right")]
ltr
}
class Simple
{
[DisplayName("Name")]
public string Name { get; set; }
[DisplayName("Direction")]
public DirectionEnum dir { get; set; }
}
class DirectionDialog : Form
{
public DirectionDialog()
{
DataGridView table = new DataGridView();
List<Simple> list = new List<Simple>(new Simple[]{
new Simple{ Name = "dave", dir = DirectionEnum.ltr},
new Simple{ Name = "dan", dir = DirectionEnum.rtl }
});
table.DataSource = list;
//view "rtl" or "ltr" in "Direction"
//I want "Right to left" or "Left to right:
}
}
我想通过enum的描述来查看方向列。 我该怎么做? 对不起,我的英语不好。
如果我想要改变枚举的值? – zardav 2012-01-19 19:51:06
不不不,不想不,我想要得到枚举值,没有设置。 – zardav 2012-01-19 20:19:54
为了从这个对象中获得枚举的值,你至少有两个选择我可以立即想到:1)添加一个公共'GetDir()'函数,它将允许以编程方式访问,而不会使其作为字段出现在' DataGridView'。 2)继承'Simple'接口,该接口只暴露'Name'和'DirDesc',并将列表作为'List'而不是'List '传递给'DataGridView',然后转换为'简单''稍后访问'dir'属性。 –
2012-01-19 23:01:53