C# 在DataGridView中显示关系的属性

C# 在DataGridView中显示关系的属性,c#,winforms,linq,datagridview,C#,Winforms,Linq,Datagridview,我想在DataGridView中显示关系的属性。我使用LINQ到SQL进行映射,并具有以下类: class Computer { public string Name; public User User; } class User { public string Name; } 我使用DataGridView来显示计算机实体的一些行,还希望有一列显示与此计算机关联的用户的名称 我已经创建了计算机类的对象数据源。我已将BindingSource的DataSource属性

我想在DataGridView中显示关系的属性。我使用LINQ到SQL进行映射,并具有以下类:

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

class User
{
    public string Name;
}
我使用DataGridView来显示
计算机
实体的一些行,还希望有一列显示与此计算机关联的用户的名称

我已经创建了
计算机
类的对象数据源。我已将BindingSource的
DataSource
属性设置到此数据源,并将DataGridView链接到此BindingSource。我已经在DataGridView中添加了一列,并将
DataPropertyName
属性设置为//User.Name//,但这不起作用。做这件事的好方法是什么

我已经考虑过创建一个额外的类,该类继承自
计算机
,并具有一个额外的字符串属性,该属性表示用户的名称;但我想避免这种解决方案

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

myDataGridView.datasource = computerUsers;
myDataGridView.dataBind();
在datagridview中调用“computerName”和“userName”



我已经考虑过使用匿名类的解决方案,但如果可能的话,我喜欢使用GUI设计。您到底想要什么代码?我使用GUI设计器来定位控件,是否要对设计器生成的控件进行编码?oops.没有看到windows窗体标记。它与web窗体的工作方式相同吗?像aspx文件和代码隐藏文件吗?对不起,不熟悉
<asp:BoundField DataField="computerName" HeaderText="Computer" />
<asp:BoundField DataField="userName" HeaderText="User" />