当行/列的数量未知时,在DataGridView上使用VirtualMode

时间:2010-05-16 07:07:55

标签: .net winforms linq performance datagridview

我需要在数据网格中有效地显示未知长度的字典序列。此序列是可能包含任意数量结果的可能较慢的LINQ查询的结果。

起初我认为VirtualMode上的DataGridView是我正在寻找的内容,但似乎必须事先知道行数和列数。我尝试添加单行和列,然后根据需要从CellValueNeeded事件中添加更多内容,但这不起作用。

VirtualMode甚至可以实现这一点吗? 或者我是否需要估计屏幕上可见的行数并手动构建行/列? 如果是这样,我如何确保存在垂直滚动条并在用户使用时做出适当反应?

1 个答案:

答案 0 :(得分:0)

您可以简单地拥有一个IBindingList集合,它将在添加行时通知网格更新。因此,您使用LINQ进行查询并填充此集合,该集合可以是任何“N”数字。在初始加载期间,可以将一些固定行设置为集合作为初始记录集,比如1000,然后在迭代LINQ查询时继续向集合添加行。

-Fahad