private void InitializeIfReady() { if (_state != FlipperState.Uninitialized || _size == null || _rootCanvas == null || ItemTemplate == null || ItemsSource == null) { return; } for (int i = 0; i < VirtualPoolSize; i++) { FrameworkElement root = (FrameworkElement)ItemTemplate.LoadContent(); root.Visibility = Visibility.Collapsed; _containers[i] = new ContentFlipperContent(root, _size.Value); _rootCanvas.Children.Add(root); } _state = FlipperState.Initialized; ResetGeometry(); UpdateVirtualizedItemPositions(); UpdateViewport(); }