积极答复者
关于使用ListBox进行滚动加载的问题

问题
答案
-
ListBox的元素宿主默认就是VirtualizingStackPanel。它支持自动计算哪些项被需要并加载这些项。
你可以做的进一步的优化:
1、把ListBox的VirtualizingStackPanel.VirtualizationMode附加属性设置为Recycling。
2、使用异步方法向数据源加入项以防阻塞UI(注意有些操作必须利用Dispatcher回到UI线程操作,不过这通常是轻量的,不会阻塞UI)
- 已标记为答案 Sheldon _XiaoModerator 2013年2月5日 9:56
-
gee law说的是对的, 首先你要确定你图片所说的加载慢是网UI上加载慢还是image从数据源加载慢,如果是UI呈现的慢,参考gee law的1,开启虚拟化。
如果是image要从另一个地方下载,这个过程慢,参考2, 用异步获取数据。
第一个没有什么sample,就是设置VirtualizingStackPanel.IsVirtualizing属性。
第二个 我想我可以给你解释明白,不用sample, 就是比如你图片是从网上下载的,这个下载的过程要很久很久,这个时候你会在另一个线程去下载这个图片,当这个图片下载完成了, 你再去更新image绑定的那个属性。
另外,如果你实在没有办法做上面的事情, 也就是你的Image绑定的属性的get方法必然会特别慢的时候,你可以用IsAsync属性。
http://msdn.microsoft.com/en-us/library/system.windows.data.binding.isasync.aspx
Sheldon _Xiao
MSDN Community Support | Feedback to us
Develop and promote your apps in Windows Store
Please remember to mark the replies as answers if they help and unmark them if they provide no help.- 已标记为答案 Sheldon _XiaoModerator 2013年2月5日 9:56
全部回复
-
ListBox的元素宿主默认就是VirtualizingStackPanel。它支持自动计算哪些项被需要并加载这些项。
你可以做的进一步的优化:
1、把ListBox的VirtualizingStackPanel.VirtualizationMode附加属性设置为Recycling。
2、使用异步方法向数据源加入项以防阻塞UI(注意有些操作必须利用Dispatcher回到UI线程操作,不过这通常是轻量的,不会阻塞UI)
- 已标记为答案 Sheldon _XiaoModerator 2013年2月5日 9:56
-
-
gee law说的是对的, 首先你要确定你图片所说的加载慢是网UI上加载慢还是image从数据源加载慢,如果是UI呈现的慢,参考gee law的1,开启虚拟化。
如果是image要从另一个地方下载,这个过程慢,参考2, 用异步获取数据。
第一个没有什么sample,就是设置VirtualizingStackPanel.IsVirtualizing属性。
第二个 我想我可以给你解释明白,不用sample, 就是比如你图片是从网上下载的,这个下载的过程要很久很久,这个时候你会在另一个线程去下载这个图片,当这个图片下载完成了, 你再去更新image绑定的那个属性。
另外,如果你实在没有办法做上面的事情, 也就是你的Image绑定的属性的get方法必然会特别慢的时候,你可以用IsAsync属性。
http://msdn.microsoft.com/en-us/library/system.windows.data.binding.isasync.aspx
Sheldon _Xiao
MSDN Community Support | Feedback to us
Develop and promote your apps in Windows Store
Please remember to mark the replies as answers if they help and unmark them if they provide no help.- 已标记为答案 Sheldon _XiaoModerator 2013年2月5日 9:56