C# DataGridView为列表对象中的列表添加多行

C# DataGridView为列表对象中的列表添加多行,c#,winforms,datagridview,C#,Winforms,Datagridview,我有两个班员工和部门,如下所示 class Employee { public string ID {get;set;} public string Name {get;set;} public List<Departments> AssociatedDepartment {get;set;} } class Department { public string DepartmentID {get;set;} public string Depa

我有两个班
员工
部门
,如下所示

class Employee
{
    public string ID {get;set;}
    public string Name {get;set;}
    public List<Departments> AssociatedDepartment {get;set;}
}

class Department
{
   public string DepartmentID {get;set;}
   public string DepartmentName {get;set;}
}
现在显示以下数据

ID  Name  
---------
1   Joe  
2   Tim
我应该怎么做才能获得以下信息

ID  Name Department 
--------------------
1   Joe  Software
1   Joe  Management
2   Tim  Hardware

您可以使用get-only属性扩展
Employee
类(列将为只读)

class员工
{
公共字符串ID{get;set;}
公共字符串名称{get;set;}
公共部门
{
得到
{ 
if(AssociatedDepartment==null | | AssociatedDepartment.Count==0)
返回字符串。空;
返回string.Join(“,”,AssociatedDepartment.Select(d=>d.DepartmentName));
}
}
公共列表关联部门{get;set;}
}

在Employee中添加以下属性:

public string Department
{
    get
    {
        string departments = string.Empty;
        foreach (Department department in AssociatedDepartment)
        {
            if (departments.Length != 0)
                departments += ", ";
            departments += department.DepartmentName;
        }
        return departments;
    }
}

根据您的设计,
一名员工可以有多个与部门{get;set;}关联的部门公共列表
是一名
员工
可以有多个
部门
class Employee
{
    public string ID { get; set; }
    public string Name { get; set; }

    public string Departments
    {
        get 
        { 
           if (AssociatedDepartment == null || AssociatedDepartment.Count == 0)
              return string.Empty;
           return string.Join(", ", AssociatedDepartment.Select(d => d.DepartmentName));
        }
    }

    public List<Department> AssociatedDepartment { get; set; }
}
public string Department
{
    get
    {
        string departments = string.Empty;
        foreach (Department department in AssociatedDepartment)
        {
            if (departments.Length != 0)
                departments += ", ";
            departments += department.DepartmentName;
        }
        return departments;
    }
}