我想在DataGridView中显示关系的属性。我使用LINQ to SQL进行映射并具有以下类:
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
的附加类,并且有一个额外的字符串属性,表示用户的名字;但我想避免这种解决方案。
答案 0 :(得分:2)
var computerUsers = from c in mydataContext.Computer
select new {
computerName = c.Name,
userName = c.User.Name
};
myDataGridView.datasource = computerUsers;
myDataGridView.dataBind();
并在您的datagridview中调用“computerName”和“userName”
<asp:BoundField DataField="computerName" HeaderText="Computer" />
<asp:BoundField DataField="userName" HeaderText="User" />