Q:

DataGrid doesnt show all properties of an object which implement interface

I have an interface defined as below.
public interface IDraw
{
    int DrawID {get;set;},
    int Num1 {get;set;}
}

and I have 2 classes which implement the interface 
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;}
}

And I have another interface which defines a method as below
 public interface IDrawType
 {
     IDraw GetData();
 }

there is another class which implements this interface.
public class MyDrawTypeOne : IDrawType
{
     public IDraw GetData()
     {
        DrawOne drawOne =  new DrawOne();
        drawOne.DrawID = 1001;
        drawOne.Num1 = 8;
        drawOne.Num2 = 9;

        return drawOne;
      }
}

I am implementing the above objects' definition as below
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;
     } 
}

The problem I have here is , the data grid only display DrawID and Num1. I am not able to see the Num2 in the data grid. Is there anything I am missing here? 
Any help would be much appreciated.
Thanks

A:

You're binding to a list of type IDraw, so your DataGrid is showing all the public properties on that interface. If you want it to show additional properties, you would need to either add them to your IDraw interface or change the list you're binding against to List<DrawOne>.

