3

バッキングデータを含む多数のアイテムを含めることができるリストボックスがあります。データの仮想化を処理するために、ObservableCollectionと同じインターフェイスを実装し、必要に応じてバッキングデータを起動できるコレクションを作成することで、WPFのUI仮想化に結び付けました。

これは正常に機能します。リストボックスで複数選択を導入すると、問題が発生します。リストボックスはインデックス(SelectedItems)ではなくオブジェクトごとに選択されたアイテムを管理するため、すべてのアイテムを選択すると、すべてのバッキングデータがスピンアップされ、リストボックスによってメモリに保持され、データの仮想化が無効になります...

オブジェクトではなくインデックスによる選択を管理するためにListBoxを書き直す以外に、これが発生しないようにする方法はありますか?

ありがとう!

エリック

4

2 に答える 2

0

UIコントロールの仮想化オプションを使用してみませんか?これにより、画面に表示されるデータのみが読み込まれます。

http://www.kirupa.com/net/ui_virtualization_pg1.htm

于 2011-09-29T05:10:43.313 に答える
0

UI仮想化を使用してデータ仮想化を制御していましたが、リストボックスが選択を保持する際に問題が発生したため、データがアンロードされませんでした。

私がやったことは、仮想化スタックパネルのアイテムジェネレーターに接続し、生成されたコンテナーのデータコンテキスト変更イベントをリッスンすることでした。これが起こったとき、私はラッパーから実際のデータをアンロードしました。

于 2011-10-04T21:35:30.680 に答える