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

本文关键字:对象 属性 接口 显示 实现 DataGrid | 更新日期: 2023-09-27 18:02:37

我有一个定义如下的接口。

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。我还遗漏了什么吗?

任何帮助都将非常感激。

谢谢

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

您绑定到类型为IDraw的列表,因此您的DataGrid显示该接口上的所有公共属性。如果你想让它显示额外的属性,你需要将它们添加到你的IDraw接口,或者改变你绑定到List<DrawOne>的列表。

您的接口IDraw只有DrawID和Num1作为属性。没有Num2。