【问题标题】:WPF DataGrid Blank RowsWPF DataGrid 空白行
【发布时间】:2013-01-03 13:34:39
【问题描述】:

我有一个包含大约 500000 个虚拟化项目的 DataGrid。当我使用鼠标滚轮滚动或使用滚动条缓慢上下滚动时,加载新行没有问题,但是当我通过拖动滚动条滚动时(可能超过 200000 条左右的记录,我得到一个空白网格。网格仍然存在空白,直到我重新初始化 ItemsSource。

我正在使用来自this tutorial 的代码,并且我的 GridView 从窗口的数据上下文中加载项目。有没有我遗漏的东西或更可靠的虚拟化这些项目的方法?

【问题讨论】:

    标签: c# wpf datagrid wpfdatagrid virtualization


    【解决方案1】:

    您可以检查您设置为数据网格的数据源的内容。源中有数据吗?

    【讨论】:

    • 当他用鼠标滚轮滚动少量时......所以
    • 我的ItemsSource是Window的DataContext,是一个ASyncVirtualizingColction。
    • 你真的认为他可以通过鼠标滚轮滚动近 200000 个项目吗?
    • ASyncVirtualizingCollection 工作非常缓慢。您确定项目未加载到数据网格中吗?你等了多少时间?拖动滚动条返回时是否显示项目?
    • 不,正如我在原始帖子中所说,“在我重新初始化 ItemsSource 之前,网格保持空白。”
    【解决方案2】:

    尝试使用 VirtualizingCollection 而不是 AsyncVirtualizingCollection。另外,请确保 IsDeferredScrollingEnabled="True"。

    【讨论】: