What is the difference between a stackpanel and a virtualizingstackpanel in WPF?

Peter picture Peter · Mar 20, 2009 · Viewed 13.7k times · Source

What is the difference between a stackpanel and a virtualizingstackpanel in WPF?

Answer

JaredPar picture JaredPar · Mar 20, 2009

A VirtualizingStackPanel can offer performance benefits when working with very large collections. It does so by only rendering and processing a subset of the data which is visible to the user vs. processing the entire list of data. By creating only UI elements for the visible items, this can greatly reduce the amount of work it has to do.

This is really only handy though if

  1. You are data binding non-UI elements or elements for which UI must be created in the particular panel
  2. You are data binding a lot of data

A StackPanel on the other hand, will up front create the controls for all elements contained within the StackPanel.

The VirtualizingStackPanel MSDN page has a decent discussion: http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx