将继承的对象绑定到c#datagrid

时间:2010-10-28 12:06:00

标签: c# inheritance datagrid

考虑以下课程:

 class A : Idata
 {
      private int _id;
      //other private fields

      public int Id
      {
            get { return _id; }
            set { _id = value; }
      }
      //other property
 } 
 class B : A
 {
      private int _field;
      //other private fields

      public int Field
      {
            get { return _field; }
            set { _field = value; }
      }
      //other property
  }

  class BCollection : Collection
  {
     ////
  }

我正在尝试将B的集合(由A对象组成)绑定到数据网格,我收到以下错误:  “对象'A'上的属性访问者'Id'抛出了令人厌恶的执行:'对象与目标类型不匹配'”  事件虽然来自A的所有数据都到达B

我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:0)

我明白了。这是我的错误,这是我如何解决它 Collection继承自CollectionBase,其中我使用了以下构造函数

 public IData this[int index]
        {
            get { return (IData)List[index]; }
            set { List[index] = value; }
        }

我所做的只是在B类中添加它

public B this[int index]
        {
            get { return (B)List[index]; }
            set { List[index] = value; }
        }