DataGridView在列表对象中为列表添加多行

时间:2015-04-07 11:51:23

标签: c# winforms datagridview

我有两个课程EmployeeDepartment如下

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;}
}

我将DataGridViewList<Employee>绑定。它显示的是Employees但不是Department员工的列表。

List<Employee> employeeList = GetEmployeeList();

if (employeeList != null)
{
     grdResponse.DataSource = employeeList;
}

现在显示以下数据。

ID  Name  
---------
1   Joe  
2   Tim

我该怎么做以获得关注?

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

2 个答案:

答案 0 :(得分:1)

你可以使用get-only属性扩展Employee类(该列将是ReadOnly)

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; }
}

答案 1 :(得分:1)

在员工中添加以下属性:

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