C# 将集合绑定到DataGridView
我试图将我的绑定列表绑定到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 {
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
,然后分别创建和绑定每个列。