ListBox Grouping and Virtualization
Maintain Scrolling with IOuterPanel

IOuterPanel needs to tell its collection of INestedPanels about changes in scrolling. If you’ve implemented IScrollInfo relatively well, everything related to updating the offsets will be funneled into SetVerticalOffset() and SetHorizontalOffset(). In these two methods, call INestedPanel’s corresponding methods if they are allowed. When they are called, have INestedPanel call InvalidateMeasure() to trigger a new layout pass. This is required so that each INestedPanel will perform virtualization.
This entry was posted on February 22, 2008 at 9:04 pm and is filed under WPF. You can subscribe via RSS 2.0 feed to this post's comments.
Tags: grouping, lazy-loading, ListBox, panel, scrolling, virtualizing
You can comment below, or link to this permanent URL from your own site.
July 9, 2009 at 11:10 am
Great blog post! Can you please provide more details how you reworked your solution to support sorting? I am having trouble with virtualization when grouping is enabled and can’t seem to solve this issue.