我有一個DataGridView
我填滿它是這樣的:添加行的DataGridView太慢
private void FillDataGridView(string stringTable)
{
var lines = stringTable.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
var columns = lines.First().Split('\t');
foreach (var columnName in columns)
this.dataGridView.Columns.Add(columnName, columnName);
foreach (var line in lines.Skip(1))
{
var cells = line.Split('\t');
// This operation is too slow when applied to a huge amount of rows:
this.dataGridView.Rows.Add(cells);
}
}
我的問題是Rows.Add(cells)
太慢(我有一個巨大的數據量)。
這是stringTable
內容的例子:
TIME Temperature
30.03.1992 10:00:00 7.500
30.03.1992 11:00:00 9.300
30.03.1992 12:00:00 10.000
30.03.1992 13:00:00 10.400
30.03.1992 14:00:00 11.400
30.03.1992 15:00:00 11.800
...
我想用一個BindingList
並將其設置爲DataSource
,這將使它更快。問題是我不知道先驗的列數(在本例中只是「TIME,Temperature」,但可能是「TIME,Temperature,Rainfall,...,Other」)。
是否提前知道最大列數組?如果是這樣,有一個靜態數據網格與所有這些列,並根據您綁定的特定數據隱藏列。然後,您可以創建一個數據源,其中包含所有列,但只有填充了數據的相關列。 – user469104