/// <summary> /// Creates an <see cref="ItemVirtualizer"/> based on an item presenter's /// <see cref="ItemVirtualizationMode"/>. /// </summary> /// <param name="owner">The items presenter.</param> /// <returns>An <see cref="ItemVirtualizer"/>.</returns> public static ItemVirtualizer Create(ItemsPresenter owner) { if (owner.Panel == null) { return(null); } var virtualizingPanel = owner.Panel as IVirtualizingPanel; var scrollable = (ILogicalScrollable)owner; ItemVirtualizer result = null; if (virtualizingPanel != null && scrollable.InvalidateScroll != null) { result = new ItemVirtualizerSimple(owner); } if (result == null) { //result = new ItemVirtualizerNone(owner); } if (virtualizingPanel != null) { virtualizingPanel.Controller = result; } return(result); }
/// <inheritdoc/> protected override void PanelCreated(IPanel panel) { Virtualizer?.Dispose(); Virtualizer = ItemVirtualizer.Create(this); ((ILogicalScrollable)this).InvalidateScroll?.Invoke(); KeyboardNavigation.SetTabNavigation( (InputElement)Panel, KeyboardNavigation.GetTabNavigation(this)); }
private void VirtualizationModeChanged(AvaloniaPropertyChangedEventArgs e) { Virtualizer?.Dispose(); Virtualizer = ItemVirtualizer.Create(this); ((ILogicalScrollable)this).InvalidateScroll?.Invoke(); }