21

にバインドされたListBoxを含む、テンプレート化された DB レコードの行が多数ある可能性のある があります。場合によっては、コレクションに何千ものアイテムが含まれることもあります。ImageObservableCollection<MyItem>

パフォーマンスは優れていますが、スクロールはデフォルトのびくびくした動作です。スムーズにスクロールさせたいので、チェックを外しScrollViewer.CanContentScrollました。

スムーズにスクロールできるようになりましたが、パフォーマンスはひどいものです。データは別のスレッドで取得され、スレッドはすぐに終了しますが、結果が に表示されるまでに 10 ~ 20 秒かかりますListBox。これは、チェックを外すと基になるものが通常にScrollViewer.CanContentScroll変更され、結果を表示する前にコレクション全体が読み込まれるためだと思います。VirtualizingStackPanelStackPanel

VirtualizingStackPanelだから私の質問はこれです:動作とパフォーマンスを犠牲にすることなくスムーズなスクロールを維持するにはどうすればよいですか?

4

3 に答える 3

11

CanContentScroll のチェックを外すと、仮想化が失われます。そして答えは本当にイライラします: 今のところ、すぐに使える解決策はありません:(。

PS: これは、まさにこの質問をする最初の投稿ではありません。

于 2009-12-17T20:46:52.800 に答える