WPF数据虚拟化ListView

14

在我们当前的WinForms应用程序中,我们使用虚拟化显示数百万的记录在ListView中。行在被请求时从数据库加载。这个方法运行良好,性能也很好。

对于我们来说,这是迁移到WPF的障碍。我们需要一个像WinForms 2.0中那样在ListView中进行数据虚拟化的功能。

您是否了解一些像样的第三方控件或相对容易使用的内置控件的方法?它不必是DataGrid,一个简单的ListView就足够了。

请注意,我不是在谈论UI虚拟化,而是数据虚拟化。


1
从用户体验的角度来看:用户能够滚动浏览数百万行数据是否有益?他们不是只对搜索结果中的前几个(几百个)感兴趣吗? - Martin Konicek
4个回答

14

这篇文章《WPF数据虚拟化》应该正是您所需要的,我轻松地实现了它,并且它能够起作用。


1
仅提供链接的答案并不好。 - Sinatr

2

1

这是来自Xceed的WPF终极列表框的描述:

智能虚拟化后台数据检索:

只有可见记录才会从远程数据源中获取(数据虚拟化)的自动数据检索。这大大减少了要传输的数据量,增加了列表框的感知速度。同时也减轻了服务器的负担。


-1

在XAML中的listview声明中添加以下属性即可。

<ListView 
      VirtualizingPanel.IsVirtualizing="True"
      VirtualizingPanel.IsVirtualizingWhenGrouping="True"
      VirtualizingPanel.VirtualizationMode="Recycling"
      ScrollViewer.IsDeferredScrollingEnabled="True" >
</ListView>

注意,我不是在谈论UI虚拟化,而是数据虚拟化。 - Sinatr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接