private UIElement GenerateContainer( ICustomItemContainerGenerator generator, int index, bool measureInvalidated, bool delayDataContext ) { bool isNewlyRealized; UIElement container = ( UIElement )generator.GenerateNext( out isNewlyRealized ); if( container != null ) { if( isNewlyRealized ) { if( !this.Children.Contains( container ) ) { this.Children.Add( container ); } this.EnableElementNavigation( container ); KeyboardNavigation.SetTabIndex( container, index ); } this.HandleGeneratedContainerPreparation( container, index, isNewlyRealized, delayDataContext ); if( ( isNewlyRealized ) || ( measureInvalidated ) ) { this.MeasureContainer( container ); } } return container; }
private UIElement GenerateContainer( ICustomItemContainerGenerator generator, int index, bool forceMeasure ) { bool isNewlyRealized; var container = ( UIElement )generator.GenerateNext( out isNewlyRealized ); if( container == null ) return null; if( isNewlyRealized ) { var collection = this.Children; if( !collection.Contains( container ) ) { collection.Add( container ); } this.EnableElementNavigation( container ); KeyboardNavigation.SetTabIndex( container, index ); this.PrepareContainer( container ); this.MeasureContainer( container ); } else if( forceMeasure ) { this.MeasureContainer( container ); } return container; }