你说的很奇怪If I remove all columns from myGV it does display data...
。我重现了您的问题,原因是您的LINQ
查询未执行。ToList()
在使用以下结果之前,您必须调用或DataSource
类似方法DataGridView
:
myGV.DataSource = Logs.logList.OrderBy(x => x.Time).ToList();
当然,如果您的静态列DataPropertyName
与 DataSource 的属性不匹配,那么添加到您的列DataGridView
将比您预期的要多。例如,假设在设计时添加了所有Time
,Description
并且没有分配任何and (默认情况下),如果您如上所述分配您的 ,您可能有 6 列,而不是 3 列。所以您可以分配您的在为您分配 之前添加了列,如下所示:Error
DataPropertyName
yourDataGridView.AutoGenerateColumns = true
DataSource
DataGridView
DataGridView
DataPropertyName
DataSource
DataGridView
myGV.Columns["Time"].DataPropertyName = "Time";
myGV.Columns["Description"].DataPropertyName = "Description";
myGV.Columns["Error"].DataPropertyName = "Error";
myGV.DataSource = Logs.logList.OrderBy(x => x.Time).ToList();//This should be called at here after all the DataPropertyNames are initialized.
我建议您设置myGV.AutoGenerateColumns = true
(默认情况下)并删除所有添加的列,让DataGridView
自动为您生成列。