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