Skip to content

Commit

Permalink
Finding ancestor IScrollAnchorProvider instead ScrollViewer. (#13079)
Browse files Browse the repository at this point in the history
Co-authored-by: Meloman19 <23280622+Meloman19@users.noreply.github.com>
  • Loading branch information
2 people authored and maxkatz6 committed Dec 5, 2023
1 parent b2ef353 commit 36d17f5
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/Avalonia.Controls/VirtualizingStackPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public class VirtualizingStackPanel : VirtualizingPanel, IScrollSnapPointsInfo
private double _lastEstimatedElementSizeU = 25;
private RealizedStackElements? _measureElements;
private RealizedStackElements? _realizedElements;
private ScrollViewer? _scrollViewer;
private IScrollAnchorProvider? _scrollAnchorProvider;
private Rect _viewport = s_invalidViewport;
private Dictionary<object, Stack<Control>>? _recyclePool;
private Control? _focusedElement;
Expand Down Expand Up @@ -211,7 +211,7 @@ protected override Size ArrangeOverride(Size finalSize)
new Rect(u, 0, sizeU, finalSize.Height) :
new Rect(0, u, finalSize.Width, sizeU);
e.Arrange(rect);
_scrollViewer?.RegisterAnchorCandidate(e);
_scrollAnchorProvider?.RegisterAnchorCandidate(e);
u += orientation == Orientation.Horizontal ? rect.Width : rect.Height;
}
}
Expand All @@ -229,13 +229,13 @@ protected override Size ArrangeOverride(Size finalSize)
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
{
base.OnAttachedToVisualTree(e);
_scrollViewer = this.FindAncestorOfType<ScrollViewer>();
_scrollAnchorProvider = this.FindAncestorOfType<IScrollAnchorProvider>();
}

protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
{
base.OnDetachedFromVisualTree(e);
_scrollViewer = null;
_scrollAnchorProvider = null;
}

protected override void OnItemsChanged(IReadOnlyList<object?> items, NotifyCollectionChangedEventArgs e)
Expand Down Expand Up @@ -702,7 +702,7 @@ private void RecycleElement(Control element, int index)
Debug.Assert(ItemsControl is not null);
Debug.Assert(ItemContainerGenerator is not null);

_scrollViewer?.UnregisterAnchorCandidate(element);
_scrollAnchorProvider?.UnregisterAnchorCandidate(element);

var recycleKey = element.GetValue(RecycleKeyProperty);

Expand Down

0 comments on commit 36d17f5

Please sign in to comment.