ListBox在需要时加载/卸载项目

时间:2016-05-23 16:04:23

标签: c# .net wpf xaml bitmap

我有ListBox绑定到大量自定义对象,其中包含Bitmap

目前我遇到了内存问题因为所有位图都已加载,即使它们不可见。

我希望ListBox以某种方式通知我的模型,以便我可以根据需要加载/卸载位图,以避免加载所有这些位图。因此,只能加载在ListBox边界内可见的位图。

我怎么能这样做? 非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您检查了集合中每个项目的ItemContainerGenerator.ContainerFromItem,那么如果项目不在视图范围内且已启用虚拟化,则应返回null

来自HttpResponse

  
      
  • 获取ListView的ScrollViewer(使用FindDescendant方法,您可以使用VisualTreeHelper自行完成)。
  •   
  • 阅读其ScrollViewer.VerticalOffset:它是显示的第一个项目的编号
  •   
  • 阅读其ScrollViewer.ViewportHeight:它是显示的项目数。
  •   
     

Rq:CanContentScroll必须为true。