2016-04-15 25 views
1

我有一个ListView约700条目(每个条目一个图像)。 ListView在垂直滚动模式下工作得很好。但是,当我将其更改为“水平”时,它会在OutOfMemory异常情况下在手机上崩溃。
我的代码改变滚动方向从微软:C#/ UWP OutOfMemory更改ListView到水平时

 <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 

好像上帝Windows试图来一次加载完整列表时Orienation改变。任何人都会遇到这个问题,甚至可能提供解决方案?

+0

你的ListView的内容是否有绑定?你有UWP应用程序吗? –

回答

2

通过使用StackPanel,您将失去虚拟化。因此,当您滚动列表时,所有700个条目都会一次存储在内存中。使用VirtualizingStackPanel或更高版本,请使用GridView而不是ListView

+1

请问为什么GridView比ListView更好? – fillobotto

+0

谢谢你做到了。耻辱,MS没有在他们的帮助页面上提到这一点。 – Thommy

+0

@fillobotto GridView基本上是一个用于水平滚动的ListView。至少在8.1。 –