DataGrid不显示实现接口的对象的所有属性

时间:2011-07-17 14:28:27

标签: c#

我的界面定义如下。

public interface IDraw
{
    int DrawID {get;set;},
    int Num1 {get;set;}
}

我有两个实现接口的类

public class DrawOne:IDraw
{
    public int DrawID {get; set;}
    public int Num1 { get; set;}
    public int Num2 { get ; set;}
}

public class DrawOne : IDraw
{
    public int DrawID {get; set;}
    public int Num1 { get; set;}
    public int Num2 { get ; set;} 
    public int Num3 { get; set;}
}

我还有另一个界面定义了如下方法

 public interface IDrawType
 {
     IDraw GetData();
 }

还有另一个实现此接口的类。

public class MyDrawTypeOne : IDrawType
{
     public IDraw GetData()
     {
        DrawOne drawOne =  new DrawOne();
        drawOne.DrawID = 1001;
        drawOne.Num1 = 8;
        drawOne.Num2 = 9;

        return drawOne;
      }
}

我正在实现上述对象的定义,如下所示

public class ImplementationClass
{
     public void ButtonClick()
     {
         List<IDraw> listData = new List<IDraw>();
         MyDrawTypeOne drawOne =  new MyDrawTypeOne();
          for(int i=0; i<10; i++)
            {
                IDraw data = drawOne.GetDrawData();
                listData.Add(data);
            }
           gridDraw.DataSource = listData;
     } 
}

我遇到的问题是,数据网格只显示DrawID和Num1。我无法在数据网格中看到Num2。这里有什么我想念的吗?

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:3)

您绑定到类型IDraw的列表,因此您的DataGrid将显示该接口上的所有公共属性。如果您希望它显示其他属性,则需要将它们添加到IDraw界面或将您绑定的列表更改为List<DrawOne>

答案 1 :(得分:2)

您的界面IDraw只有DrawID和Num1作为属性。没有Num2。