Browse Source

report irregular snappoints in virtualizing stack panel based on itemsource count

pull/11752/head
Emmanuel Hansen 3 years ago
parent
commit
dcb46d4d9a
  1. 6
      src/Avalonia.Controls/VirtualizingStackPanel.cs

6
src/Avalonia.Controls/VirtualizingStackPanel.cs

@ -777,7 +777,7 @@ namespace Avalonia.Controls
public IReadOnlyList<double> GetIrregularSnapPoints(Orientation orientation, SnapPointsAlignment snapPointsAlignment) public IReadOnlyList<double> GetIrregularSnapPoints(Orientation orientation, SnapPointsAlignment snapPointsAlignment)
{ {
var snapPoints = new List<double>(); var snapPoints = new List<double>();
var itemCount = ItemsControl?.ItemsSource?.Count() ?? 0;
switch (orientation) switch (orientation)
{ {
case Orientation.Horizontal: case Orientation.Horizontal:
@ -787,7 +787,7 @@ namespace Avalonia.Controls
{ {
var averageElementSize = EstimateElementSizeU(); var averageElementSize = EstimateElementSizeU();
double snapPoint = 0; double snapPoint = 0;
for (var i = 0; i < Items.Count; i++) for (var i = 0; i < itemCount; i++)
{ {
var container = ContainerFromIndex(i); var container = ContainerFromIndex(i);
if (container != null) if (container != null)
@ -834,7 +834,7 @@ namespace Avalonia.Controls
{ {
var averageElementSize = EstimateElementSizeU(); var averageElementSize = EstimateElementSizeU();
double snapPoint = 0; double snapPoint = 0;
for (var i = 0; i < Items.Count; i++) for (var i = 0; i < itemCount; i++)
{ {
var container = ContainerFromIndex(i); var container = ContainerFromIndex(i);
if (container != null) if (container != null)

Loading…
Cancel
Save