diff --git a/src/Avalonia.Controls/Repeater/ViewportManager.cs b/src/Avalonia.Controls/Repeater/ViewportManager.cs index c62d447c95..e50de87877 100644 --- a/src/Avalonia.Controls/Repeater/ViewportManager.cs +++ b/src/Avalonia.Controls/Repeater/ViewportManager.cs @@ -459,6 +459,7 @@ namespace Avalonia.Controls private void UpdateViewport(Rect viewport) { var currentVisibleWindow = viewport; + var oldVisibleWindow = _visibleWindow; if (-currentVisibleWindow.X <= ItemsRepeater.ClearedElementsArrangePosition.X && -currentVisibleWindow.Y <= ItemsRepeater.ClearedElementsArrangePosition.Y) @@ -471,7 +472,10 @@ namespace Avalonia.Controls _visibleWindow = currentVisibleWindow; } - TryInvalidateMeasure(); + if (_visibleWindow != oldVisibleWindow) + { + TryInvalidateMeasure(); + } } private static void ValidateCacheLength(double cacheLength)