C# 将一个对象与另一个对象集合进行数据绑定
我的动机是使用某种数据绑定/数据源(正如.Net FrameWork在DataGridView、ListView中使用的那样)为我自己的自定义对象AdvancedTableEntries和C# 将一个对象与另一个对象集合进行数据绑定,c#,visual-studio,oop,design-patterns,data-binding,C#,Visual Studio,Oop,Design Patterns,Data Binding,我的动机是使用某种数据绑定/数据源(正如.Net FrameWork在DataGridView、ListView中使用的那样)为我自己的自定义对象AdvancedTableEntries和BindingList 我的BindingList对象 public class Employee { public string Name{get;set;} public int PayrollRollNo{get;set;}
BindingList
我的BindingList对象
public class Employee
{
public string Name{get;set;}
public int PayrollRollNo{get;set;}
public Address CurrentAddress{{get;set;}}
}
应该如何实现GetTableEntries()方法
class CustomTable : : AdvancedTable
{
IList<Employee> EmployeeItems;
public CustomTable(IList<Employee> items)
{
EmployeeItems = items;
}
public override void CreateDefaultColumns()
{
Columns.Add(new AdvancedTableColumn
{
Visible = true,
DataPropertyName = "Name",
FillWeight = 2,
Merging = true,
});
Columns.Add(new AdvancedTableColumn
{
Visible = false,
HeaderText = Localization.Common.Name,
DataPropertyName = "PayrollRollNo",
FillWeight = 2,
SomeFancyFunction = delegate (object item)
{
var item2 = item as Employee;
return some fancy things...
}
});
}
public override AdvancedTableEntries GetTableEntries()
{
//How to get entries as comparing "DataPropertyName"?and do something like this:
List<AdvancedTableCell[]> tableEntries.DataSource= EmployeeItems;
// Or as AdvancedTableEntries
}
}
public class AdvancedTableEntries
{
public AdvancedTableEntries(List<AdvancedTableColumn> columns, List<AdvancedTableCell[]> tableEntries)
{
Columns = columns;
TableEntries = tableEntries;
int width = tableEntries.First().Length;
if (!width.Equals(columns.Count)) throw new System.ArgumentException("Report Entry Column and Datacolumn size doesnot match", "EntriesData");
}
public List<AdvancedTableColumn> Columns { get; private set; }
public List<AdvancedTableCell[]> TableEntries { get; private set; }
}
Name PayRollNo
John 12345
Harry 4567
Trumph 0000