C# 将一个对象与另一个对象集合进行数据绑定

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

我的动机是使用某种数据绑定/数据源(正如.Net FrameWork在DataGridView、ListView中使用的那样)为我自己的自定义对象AdvancedTableEntries
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