如何将Object [,]绑定到datagridview?

时间:2016-07-07 01:21:30

标签: c# winforms collections datagridview

我有二维数组,包含不同类型的数据(int,string,float)。

如何将其绑定到数据网格视图?

或者将其转换为数据View或BindingList或DataTable,然后将其绑定到datagridview?

编辑: Object [,]是完全动态的数据(不同的行,列,数据类型,类似转储数据):( Excel工作表)

[0,x]“kjslwe”3“w”45“erer”643“reew”“54”56 34

[1,y] 23“e”1“sf”123213“ds”343433

1 个答案:

答案 0 :(得分:1)

您没有使用2D Array,而是使用Jagged Array。锯齿状数组是一个数组,其元素是数组。锯齿状阵列的元素可以具有不同的尺寸和大小。锯齿状数组有时被称为“数组数组”。

要在DataGridView中显示锯齿状数组,您可以先计算所需的列数,然后设置网格的ColumnCount属性。然后使用Add Rows网格集合的重载来添加行,该网格接受param object[]。例如:

object[][] data = new object[][]{ 
        new object[] {"kjslwe", 3, "w", 45, "erer", 643, "reew", "54", 56, 34},
        new object [] {23, "e", 1, "so", 123213, "ds", 343433}
};

var columns = data.Max(x => x.Count());         /* Calculate number of columns */
grid.ColumnCount = columns;                     /* Set column count of grid   */
data.ToList().ForEach(x => grid.Rows.Add(x));   /* Add rows                    */

enter image description here

在上面的例子中,我还设置了这些属性:

grid.AllowUserToAddRows = false;
grid.AllowUserToDeleteRows = false;
grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader;