2016-07-07 86 views
2

我有不同類型的數據(int,string,float)的二維數組。如何將Object [,]綁定到datagridview?

我如何將它綁定到數據網格視圖?

或將其轉換爲數據View或BindingList或DataTable,然後將其綁定到datagridview?

編輯: 對象[,]是完全動態的數據(行的不同沒有,列,數據類型,喜歡轉儲數據。):(Excel表)

[0,x]中 「kjslwe」 3「瓦特「45 」ERER「 643 」reew「 」54「 56 34

[1,Y] 23的 」e「 1 」SF「 123213 」DS「 343433

+1

是什麼數據結構?分享數據樣本。另外,如果它是一個winforms問題,請刪除asp.net標記。 –

+0

我編輯了添加額外細節的問題。它是一個2D對象數組,它以行和列的形式存儲多種類型的數據(在幾列可以爲空) –

+0

爲什麼要綁定?您可以通過解析代碼中的數據來自行創建行。 – rheitzman

回答

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; 
+0

感謝解決方案的人。有效 –