2016-04-15 14 views
1

私はListViewを約700エントリ(エントリあたり1つのイメージ)で持っています。リストビューは、垂直スクロールモードで正常に動作します。しかし、それをHorizo​​ntalに変更すると、OutOfMemory Exceptionで電話でクラッシュします。
私はマイクロソフトからのコードでスクロール方向を変更します。C#/ UWP OutOfMemory変更時ListViewから水平

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

Orienationが変更されたとき、主Windowsが一度に完全なリストをロードしようとしているように思え。他の誰もがこの問題を経験しているかもしれません。

+0

ListViewのコンテンツにはバインディングがありますか?あなたはUWPアプリを持っていますか? –

答えて

2

StackPanelを使用すると、仮想化が緩慢になります。したがって、リストをスクロールすると、700エントリすべてが一度にメモリに格納されます。 VirtualizingStackPanel以上を使用する場合は、ListViewの代わりにGridViewを使用してください。

+1

ListViewよりもGridViewが優れているのはなぜですか? – fillobotto

+0

ありがとう、トリックでした。 MSが彼らのヘルプページでこれを言及していないことを恥ずべき。 – Thommy

+0

@fillobotto GridViewは、基本的に水平スクロールを目的としたListViewです。少なくとも8.1では。 –

関連する問題