C# Winforms datagrid:如何将datagrid与派生类列表绑定

C# Winforms datagrid:如何将datagrid与派生类列表绑定,c#,winforms,datagrid,C#,Winforms,Datagrid,我面临winforms数据网格绑定的问题 我有一个基类a,这个类由A1和A2继承 public class A { public string P {get;set;} } public class A1 : A { public string P1 {get;set;} } public class A2 : A { public string P2{get;set;} } 我还有一个列表要显示在网格中 List<A> Mylist = new List<A

我面临winforms数据网格绑定的问题

我有一个基类a,这个类由A1和A2继承

public class A
{
  public string P {get;set;}
}

public class A1 : A
{
  public string P1 {get;set;}
}

public class A2 : A
{
  public string P2{get;set;}
}
我还有一个列表要显示在网格中

List<A> Mylist = new List<A>();

MyList.add(new A1());
MyList.add(new A2());
List Mylist=new List();
添加(新的A1());
添加(新A2());
网格有两列,第一列显示p的值,第二列显示P1或P2

我该怎么做

问候,


Moon

像这样设计你的课程:

public class A
  {
    public string P { get; set; }
    public virtual string VirtualString { get; set; }
  }

  public class A1 : A
  {
    public string P1 { get; set; }

    public override string VirtualString
    {
      get { return P1; }
      set { P1 = value; }
    }
  }

  public class A2 : A
  {
    public string P2 { get; set; }

    public override string VirtualString
    {
      get { return P2; }
      set { P2 = value; }
    }
  }
派生类中的任何自定义行为都需要一个公共基础