2010-11-21 66 views
5

我想将DataGridView类中的列绑定到C#中使用.NET 4.0的第二级对象中的条目。例如:将DataGridViewColumn绑定到第二级对象

我有对象A:

public class A 
{ 
    public long id; 
    public B bClass; 
} 

和对象B

public class B 
{ 
    public long id; 
    public string name; 
} 

有没有一种方法来声明类A的上一个DataGridView的数据源,但绑定列表B类中名称属性的列之一?

我把它简化了一下,但希望这不会让人困惑。谢谢您的帮助!

回答

0

是的。
当您绑定,你这样做:

grid.DataSource = MyAList; 
grid.DataMember = "bClass"; 
grid.DataBind(); 

现在,当你绑定,你正在评估对B类

+0

但是不会不正确地绑定?我的理解是数据网格只能绑定到基元,集合/枚举或INotifyPropertyChanged接口。 – 2010-11-21 05:54:03

+0

@AK;你总是可以在'ItemDataBound'事件中处理特定的绑定。 – BeemerGuy 2010-11-21 05:56:00

1

上述解决方案并没有为我工作的成员。我更加了解这个问题的更多内容:Is it possible to bind complex type properties to a datagrid?

我所做的是在gui层中实现一个具有所有想要的属性的类C。你也可以写一个构造函数初始化A类中的新类:

public class C 
{ 
    public C(A a) 
    { 
     Id = a.Id; 
     Bid = a.bClass.Id; 
     Bname = a.bClass.Name; 
    } 

    public long Id; 
    public long Bid; 
    public string Bname; 
}