ピボット ビューがあり、6 つのピボット項目があります。各ピボット項目には、映画のリストが含まれています。各ムービーにはカバー画像があり、その横にタイトルとその他のメタデータがあります。これを希望どおりにスタイルするには、明らかにいくつかのグリッド/スタックパネルを使用する必要がありました。また、各アイテムのコンテキストメニューがあります。リストボックスの上に、データのロード中に表示するパフォーマンス プログレス バーがあります (すべて Web API から取得します)。私の問題は、リストの 1 つに他のリストよりも多くの映画が含まれていることです (約 100)。このリストをロードすると、アプリは約 150-160 MB のメモリを使用し、90 MB の制限を超えます。すべての画像とコンテンツがすぐに読み込まれるように見えます (これがこの問題の原因だと思います)。
私が欲しいのはこれです:
最初にタイトルとメタデータをロードしてから、ユーザーが現在リスト内にいる場所にのみ画像をロードして、ユーザーが下にスクロールする前にリストの下の方にある画像がロードされないようにします。
deferredloadlist、lazylist、および通常のリストボックスを使用してみましたが、仮想化を標準に設定してリサイクルしようとしましたが、結果はありませんでした。ただし、これらすべてが実際に何をしているのかはわかりません。これを修正する方法を知っている人はいますか?前もって感謝します。
PS。リストボックスの xaml コードはやや不格好なので、この投稿には含めないことにしました。あなたが本当に助けるためにそれを見る必要があるかどうか私に知らせてください.
更新: 仮想化リストボックスを使用してメモリ使用量を減らすことができましたが、それでも約 100 mb です。bitmapImage.ImageSource =null; の設定をどこかで読みました。画像の使用が終了すると、メモリから消去されます。リストボックスにあるときに各画像に対してこれを行うにはどうすればよいですか?