WPF データグリッドのスクロールに問題がありました。いくつかの分析により、 ScrollViewer.CanContentScroll = true が原因であることがわかりました。削除して false にすると、スクロールの問題が修正されました。しかし昨日、誤って 50k レコードをバインドしたために、WPF アプリケーションのメモリ フットプリントが 1.3Gb を超えて増加したバグを分析していました。それでも、10,000 レコードをバインドする能力に疑問を呈しました。ユーザーはページネーションを望んでいません。(それは要件であり、それについてはあまりできません!)
ScrollViewer.CanContentScroll = false を設定すると、UI 仮想化が false になります。これにより、WPF がすべてのレコードをバインドし、画面にレンダリングします。その結果、メモリ フット プリントが爆発的に増加し、パフォーマンスの問題が発生します。
今のところ、バインドするレコードが最小限の場合は ScrollViewer.CanContentScroll= false を設定し、そうでない場合は true に設定します。
要するに、スクロールの問題または UI の仮想化で行き詰まっています。両方を修正できるものはありますか?データの仮想化について読んだことがありますが、本当にそこまでする必要があるのでしょうか? 私たちを助けることができる.net4.0から箱から出して何か不足していますか?