4

2012年8月に、この記事が公開されましたhttp://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286406%28v=vs.92%29.aspxデータベースのベストプラクティスについて説明しています。

この記事では、リストボックスでのデータ仮想化を有効にする必要があると述べており、2010年8月付けの記事に従うことを提案しています。

「データバインドされたListBoxコントロールでデータ仮想化を有効にする方法の詳細については、Silverlight for Windows Phone 7でのListBoxパフォーマンスの向上:データ仮想化を参照してください。 」

ただし、リストボックスの仮想化は、Mangoバージョンでリリースされたものでデフォルトで有効になっていると思いました。あれは正しいですか?監視可能なコレクションにデータバインドされたリストボックスは、デフォルトで仮想化されていますか?

4

1 に答える 1

3

Uiはデフォルトで仮想化されているため、リストボックスはリストアイテムのデータテンプレートを再利用し、実際にスクロールして表示されるリストアイテムのみをレンダリングします。

ただし、observablecollectionを使用している場合、データは仮想化されません。

したがって、1,000,000アイテムのリストがある場合、それらはすべてメモリに保存されますが、そのうちのいくつかのUIのみが作成および描画されます。

データも仮想化するには、カスタムilistを実装する必要があり、場合によってはinotifycollectionchangedもサポートする必要があります。この実装では、たとえば、SQLiteを使用して、スクロールによって必要なデータ項目をロードすることができます。

于 2012-09-26T19:12:33.157 に答える