我正在构建一个WPF应用程序来可视化一大堆项目(几千个)。为此,我使用ItemsControl,其ItemsSource设置为BindingList。
我注意到初始化屏幕需要一些时间......主要的瓶颈是创建TextBlock元素(项目的数据模板包含4个TextBlock元素)。初始化屏幕后(创建所有WPF元素时),渲染就可以了。
我已经实现了缩放和平移,因此我考虑使项目的外观取决于缩放级别和中心点(有点像谷歌地图:数据仅可视化到视图中的区域)
如何做到这一点? WPF中是否有任何方法可以询问项目或项目容器当前是否被剪切?
答案 0 :(得分:1)
您可以将列表虚拟化。这样,只有可见的项目才会为其创建UI控件。 检查ListView文档,或者此链接可能有所帮助: http://www.codeproject.com/KB/WPF/WpfDataVirtualization.aspx
Jogy