2012-01-01 6 views
3

ListBoxを使用して、無限のオプションリストをユーザーに表示しようとしています。現在のところ、私は任意の点でリストを切り捨てているだけですが、ユーザーが望む範囲でスクロールできるようにしたいと考えています。また、私は、各アイテムを生成するためにいくつかの計算が行われなければならないので、不可視のアイテムをできるだけ生成しないようにしたい。WPF ListBoxはユーザーのスクロールとしてアイテムを生成します

私は、目に見えるアイテムの列挙型を尋ねるだけでなく、無限に多くのアイテムがある場合は無限ループを引き起こすすべてのアイテムを読み込もうとしています(listBox.ItemsSource = enumerable)。

私の最高のアイデアはListBoxスクロールダウンとはkが見えるアイテムの数が一度におそらく見える最後の項目(後kより多くのアイテムが常に存在しているように新しいアイテムを追加するたびに通知され、リスナーを追加しているので、ページダウンの動作)。

これを処理するクリーナーの方法はありますか?

答えて

7

VirtualizingStackPanelを使用してUIの要素数を減らし、データ仮想化技術を使用してメモリに保持するデータを制限します。詳細はhereを参照してください(特にBea Stolnitzのブログ記事はここで参照されています)。

+0

「データ仮想化」は私の検索に欠けていたキーワードのようです。 Bea Stolnitzのブログのエントリーは役に立ちます。 – perelman

関連する問題