2009-08-27 52 views
0

我想在DataGridView中顯示關係的屬性。我使用LINQ to SQL來進行映射,並具有以下類別:在DataGridView中顯示關係屬性

class Computer 
{ 
    public string Name; 
    public User User; 
} 

class User 
{ 
    public string Name; 
} 

我用一個DataGridView來顯示Computer實體的某些行,也希望有一列,以顯示與相關聯的用戶名這臺電腦。

我創建了Computer類的對象數據源。我已將BindingSource的DataSource屬性設置爲此數據源,並將此DataGridView與此BindingSource鏈接起來。我在我的DataGridView中添加了一列,並將DataPropertyName屬性設置爲//User.Name//,但這不起作用。什麼是這樣做的好方法?

我已經想過創建一個繼承自Computer的額外類,它有一個額外的字符串屬性,它代表了用戶的名字;但我想避免這個解決方案。

回答

2
var computerUsers = from c in mydataContext.Computer 
select new { 
computerName = c.Name, 
userName = c.User.Name 
}; 

myDataGridView.datasource = computerUsers; 
myDataGridView.dataBind(); 

,並在您的datagridview通話「計算機」和「username」的

<asp:BoundField DataField="computerName" HeaderText="Computer" /> 
<asp:BoundField DataField="userName" HeaderText="User" /> 
+0

我已經想過用匿名類的解決方案,但我想如果可能使用GUI設計。 – 2009-08-27 07:25:50

+0

好的。你可以發佈你的數據網格和對象源代碼嗎? – krishna 2009-08-27 07:31:02

+0

你想要什麼代碼?我使用GUI設計器來定位我的控件,是否要設計器生成的代碼? – 2009-08-27 09:05:44