WPF listview/gridview性能可怕,建议

6 wpf performance listview gridview

我有一个窗口使用绑定到ObservableCollection的WPF ListView/GridView.表演完全可怕.每次添加/删除/修改项目时,应用程序都会尝试加载300-400项和CPU使用率峰值.分析没有揭示任何明显的东西.

有人有什么建议吗?

red*_*ong 8

检查这些属性:

VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling"
ScrollViewer.IsDeferredScrollingEnabled="True"
Run Code Online (Sandbox Code Playgroud)


Son*_*Ali 5

您需要按照本文中的说明虚拟化ListView的ItemSource:WPF: CodeProject上数据虚拟化作者:Paul McClean


Adr*_*ian 2

首先猜测,您是否为每个 ListViewItem 使用复杂的数据模板?这可能是任何东西,从大量图像到(旧的)BitmapEffects,甚至是按需从数据库获取数据的延迟加载属性(这可能会导致您执行许多数据库调用来渲染每个视觉效果,具体取决于您的数据模型的方式)作品)。

第二个猜测,列表本身是否能够快速运行其加载/添加/修改/删除例程(这意味着在渲染数据时出现问题),或者列表本身是否缓慢地执行这些工作(表明列表存在某种问题) )。