WPF数据虚拟化ListView

时间:2009-06-11 13:23:16

标签: wpf performance listview virtualization

在我们当前的WinForms应用程序中,我们使用虚拟化在ListView中显示数百万条记录。在请求时从DB加载行。这很好,性能很好。

这是为我们迁移到WPF的showstopper。我们需要在ListView中进行数据虚拟化,就像WinForms 2.0一样。

您是否了解一个体面的第三方控件,或者使用内置控件进行相对简单的方法?它不需要是一个DataGrid,一个简单的ListView就足够了。

注意,我注意到的是UI虚拟化,它是数据虚拟化。

4 个答案:

答案 0 :(得分:13)

文章WPF Data Virtualization应该正是您正在寻找的内容,我只是很容易实现它,并且它有效。

答案 1 :(得分:2)

Xceed DataGrid for WPF支持数据虚拟化。

答案 2 :(得分:1)

这是来自Xceed的Ultimate ListBox for WPF的说明:

  

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

     

自动数据检索仅在远程数据源可见时才会获取记录(数据虚拟化)。这大大减少了要传输的数据量,这增加了列表框的感知速度。还可以减轻服务器的压力。

答案 3 :(得分:1)

只需在XAML的列表视图声明中添加以下属性即可。

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