2010-11-21 63 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; 
}