private void CreateContainers() { var generator = Owner.ItemContainerGenerator; if (Owner.Bounds.Size.IsDefault) { if ((Items.Count() > 0) && !_estimated) { PdmLogger.Log(0, PdmLogger.IndentEnum.In, $"Estimate {Id} Items:{Items} "); var materialized = generator.Materialize(0, Items.ElementAt(0)); VirtualizingPanel.Children.Insert(0, materialized.ContainerControl); materialized.ContainerControl.Measure(Size.Infinity); VirtualizingAverages.AddContainerSize(GroupControl.TemplatedParent, Items.ElementAt(0), materialized.ContainerControl); //VirtualizingPanel.Children.RemoveAt(0); //generator.Dematerialize(0, 1); //ItemsPresenter.InvalidateMeasure(); _estimated = true; PdmLogger.Log(1, PdmLogger.IndentEnum.Out, $"Estimated {Id} Items:{Items} "); } } else if (Items != null && VirtualizingPanel.IsAttachedToVisualTree) { _realizedChildren.AddChildren(); } _estimatedSize = VirtualizingAverages.GetEstimatedExtent(GroupControl.TemplatedParent, Items, Vertical); }