我有一个对象的 BindingList。这些对象包含要由数据绑定视图显示的公共属性。不幸的是,我无法让返回包含对象的字段数据的属性起作用。以下面的人为示例为例:
Public Class ChimpDiet
{
public string favoritefood;
}
Public Class Chimpanzee
{
private ChimpDiet diet;
[DisplayName("Chimp's favorite food")]
public string favoritefood
{ get { return diet.favoritefood; } }
[DisplayName("Chimp's nickname")]
public string nickname { get; set; }
public Chimpanzee()
{
diet = new ChimpDiet();
}
}
当我将黑猩猩的 BindingList 设置为 datagridview 的数据源时,属性 favoritefood 会导致错误弹出:
DataGridView 中发生以下异常:
System.Reflection.TargetInvocationException:属性访问器......抛出以下异常:'对象引用未设置为对象的实例......'......
确保始终在容器对象的构造函数中创建实例,但这并不能解决问题。有什么建议么?这是在 Net 2.0 上
ps数据由网格显示,只是这个错误不断弹出,说引用没有设置为实例,即使它显然是。这一定是winforms的问题。
更新:将 ChimpDiet 从一个类更改为一个结构可以消除错误。但我需要它成为一堂课。这对我来说毫无意义。