C# 将集合绑定到DataGridView

C# 将集合绑定到DataGridView,c#,winforms,datagridview,C#,Winforms,Datagridview,我试图将我的绑定列表绑定到DataGridView,但并没有显示所有内容!这就是我目前拥有的代码: public class Person { public int ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public int[] numbers = new int[6] } public class Data {

我试图将我的绑定列表绑定到DataGridView,但并没有显示所有内容!这就是我目前拥有的代码:

public class Person
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int[] numbers = new int[6] 
}

public class Data
{
    public static BindingList<Person> persons = new BindingList<Person>(); 
}

...

var bl = new BindingList<Person>(persons);
myGrid.DataSource = bl;
公共类人物
{
公共int ID{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共整数[]个数=新整数[6]
}
公共类数据
{
public static BindingList persons=new BindingList();
}
...
var bl=新绑定列表(人);
myGrid.DataSource=bl;
除了在DataGridView中不显示
Person.numbers
这一事实(仅ID、FName和LName)之外,一切都很好


你知道为什么吗?

我会试着把它变成一处房产。编辑:要格式化以在datagridview中使用,可以使用setter并将列绑定到格式化字符串,如下例所示

public class Person
{
  public int ID { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public String NumbersString { get; set; }

  private int[] _numbers;
  public int[] Numbers
    {
         get
             {
                return _numbers;
             }
         set
            {
              _numbers = value;
              NumbersString = FormatIntoString(_numbers);

            }

     }

  public Person()
  {
  numbers = new int[6];

  }


 // The write the method that puts the array into a readable form

 private string FormatIntoString(int[] array)
   {
     string result = "";

     foreach(var x in array)
      {
        result += x.ToString() + ",";
      }
     return result;
   }

numbers
是字段,将其设为属性。我按照建议做了,也遵循了@Felix给出的示例,但我仍然有相同的问题!:x
=true
还是您手动创建列?嗯,我完全按照您所说的做了,问题仍然存在;(字段
numbers
是一个数组。您是将列专用于
numbers
的每个元素,还是试图将整个数组
numbers
放在一列中?您很可能需要设置
AutoGenerateColumns=false
,然后分别创建和绑定每个列。