title: Grouping, virtualization and scrolling in a ListBox
body: <p>Using following code ListBox jumps to the next group during scrolling. Since one group shows more items than can fit screen, user never sees all items of the group. 
  Since I have a lot of items I need viritualization. </p>
  
  <p>Setting <code>CanContentScroll="False"</code> fixes the issue but then virtualization is gone and UI hangs for 20 seconds. Is there a way around this?</p>
  
  <pre><code> &lt;ListBox  
     VirtualizingStackPanel.IsVirtualizing="True"
     VirtualizingStackPanel.VirtualizationMode="Recycling"
     ScrollViewer.CanContentScroll="True"&gt;
      &lt;ListBox.GroupStyle&gt;
      &lt;GroupStyle HidesIfEmpty="True"&gt;
          &lt;GroupStyle.ContainerStyle&gt;
          &lt;Style TargetType="{x:Type GroupItem}"&gt;
            &lt;Setter Property="Template"&gt;
              &lt;Setter.Value&gt;
                &lt;ControlTemplate&gt;
                  &lt;Expander IsExpanded="True"&gt;
                    &lt;Expander.Header&gt;
                       &lt;StackPanel Orientation="Horizontal"&gt;
                          &lt;TextBlock Text="{Binding Type}"  /&gt;
                          ...
                       &lt;/StackPanel&gt;
                    &lt;/Expander.Header&gt;
                    &lt;ItemsPresenter /&gt;
  </code></pre>