3

ListBoxを使用して、おそらく無限のオプションのリストをユーザーに表示しようとしています。現在、私は任意の時点でリストを切り取っているだけですが、ユーザーが好きなだけ下にスクロールできるようにしたいと考えています。また、各アイテムを生成するために何らかの計算を行う必要があるため、非表示アイテムの生成をできるだけ避けたいと考えています。

列挙可能なアイテムに表示されるアイテムのみを要求することを期待して書いてみましlistBox.ItemsSource = enumerableたが、代わりにすべてのアイテムを読み取ろうとするため、アイテムが無限にある場合は無限ループが発生します。

ListBox私の最善のアイデアは、スクロールダウンするたびに通知を受けるリスナーを追加し、新しいアイテムを追加しkて、最後のアイテムの後に常により多くのアイテムが表示されるようにすることです(k一度に表示されるアイテムの数はおそらくページダウンが機能します)。

これを処理するためのよりクリーンな方法はありますか?

4

1 に答える 1

7

を使用しVirtualizingStackPanelて UI が描画する要素を少なくし、データ仮想化手法を使用してメモリに保持するデータを制限します。詳細については、こちらを参照してください (特に、ここで参照されているBea Stolnitz のブログ エントリ)。

于 2012-01-01T01:59:42.343 に答える