internal static void OnVirtualizationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ItemsControl ic = d as ItemsControl; if (ic != null) { Panel p = ic.ItemsHost; if (p != null) { p.InvalidateMeasure(); ItemsPresenter itemsPresenter = VisualTreeHelper.GetParent(p) as ItemsPresenter; if (itemsPresenter != null) { itemsPresenter.InvalidateMeasure(); } if (d is TreeView) { DependencyProperty dp = e.Property; if (dp == VirtualizingStackPanel.IsVirtualizingProperty || dp == VirtualizingPanel.IsVirtualizingWhenGroupingProperty || dp == VirtualizingStackPanel.VirtualizationModeProperty || dp == VirtualizingPanel.ScrollUnitProperty) { VirtualizationPropertyChangePropagationRecursive(ic, p); } } } } }