【发布时间】:2021-01-24 07:02:52
【问题描述】:
我有一个用 C# 编写的 winform 应用程序。为了说明问题,我写了如下代码sn-p。
class A
{
public E e{get; set;}
}
enum E
{
A=2,
B=3
}
void Form1_Load(object sender, EventArgs e)
{
A[] AA=new A[]
{
new A{e=E.A},
new A{}
};
dataGridView1.DataSource=AA;
}
我希望它在数据网格的第二行显示空白,但它会生成异常“System.ArgumentException:值'0'不是枚举'E'的有效值。”。 我该如何处理?基本上数据是从其他程序返回的,我无法更改。
顺便说一句,我在 propertyGrid 中显示了一个值。它运作良好。当枚举值为空时,它显示一个空白单元格,这正是我想要的。但是数据网格的工作方式不同。
【问题讨论】:
-
看起来第二个
A没有 E 值,并且枚举没有默认值。 -
非常好的类名“A”,枚举“E”和数组“A[] AA”)))它使它更容易阅读和理解)
-
你能改变类或枚举吗?
-
@MD.Unicorn 不,我不能更改类或枚举定义。它们由其他人作为库提供。
标签: c# winforms datagridview