2011-09-02 6 views
3

WPFデータグリッドのスクロールに問題がありました。一部の分析で、ScrollViewer.CanContentScroll = trueが原因であることが判明しました。それを削除して間違えると、スクロールの問題が修正されました。しかし、昨日、私は間違って50kのレコードをバインドするために、1.3Gb以上のWPFアプリケーションのメモリ占有量の増加に関するバグを分析していました。それでも、10kのレコードをバインドする能力に疑問を抱いていました。ユーザーはページ区切りを必要としません。DataGridスクロールの問題の修正により、パフォーマンスとメモリの問題が発生する

ScrollViewer.CanContentScroll = falseを設定すると、UI仮想化がfalseになります。 WPFはすべてのレコードをバインドして画面に表示します。その結果、メモリのフットプリントとパフォーマンスの問題が爆発的になりました。

今のところ、バインドするレコードが最小の場合は、ScrollViewer.CanContentScroll = falseを設定し、それ以外の場合はtrueに設定します。

要するに、私たちはスクロールの問題やUIの仮想化に悩まされています。両方を修正できるものはありますか?データ仮想化について読んだことがありますが、実際にはこれまでに行っておく必要がありますか?私に役立つかもしれない.net4.0からボックスから何かが欠けていますか?

答えて

2

this questionの回答を確認してください...回答の「それらの間の選択」セクションに、アイテムが表示されていないときにカスタムデコレータの表示を非表示にするヒントがあります。

しかしそれ以外の...あなたは正しいです。スムーズなスクロールや仮想化ができます...両方ではありません。

さらに、データグリッド内のアイテムをグループ化する場合は、this answerをチェックしてください。

+0

ありがとうScott、私はどちらかのオプションを試し、ここで更新します! – ioWint

関連する問題