private void InitVirtualizationStrategy(VirtualizationStrategyDefinition definition) { if (definition == null) { throw new ArgumentNullException(nameof(VirtualizationStrategyDefinition)); } this.RecycleAllItems(); this.ClearReycledItems(); if (this.virtualizationStrategyDefinition != null) { this.UpdateStrategyDefinitionPropertyChangedHandling(false); this.virtualizationStrategy.ResetOwner(); } this.virtualizationStrategyDefinition = definition; this.virtualizationStrategy = this.virtualizationStrategyDefinition.CreateStrategy(); this.virtualizationStrategy.InitializeOwner(this); if (this.IsLoaded) { this.UpdateStrategyDefinitionPropertyChangedHandling(true); } this.ResetScrollViewer(); this.InvalidateMeasure(); this.InvalidateArrange(); this.ScheduleAsyncBalance(); this.BeginAsyncBalance(); }
internal virtual void OnVirtualizationStrategyDefinitionChanged(DependencyPropertyChangedEventArgs args) { VirtualizationStrategyDefinition definition = (VirtualizationStrategyDefinition)args.NewValue; this.InitVirtualizationStrategy(definition); }