Browse Source

Merge PR #643

Conflicts:
	tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs
pull/650/merge
Steven Kirk 10 years ago
parent
commit
c8f175474e
  1. 1
      src/Avalonia.Controls/VirtualizingStackPanel.cs
  2. 1
      tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization.cs
  3. 34
      tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs

1
src/Avalonia.Controls/VirtualizingStackPanel.cs

@ -74,7 +74,6 @@ namespace Avalonia.Controls
protected override Size ArrangeOverride(Size finalSize)
{
_availableSpace = finalSize;
_canBeRemoved = 0;
_takenSpace = 0;
_averageItemSize = 0;

1
tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization.cs

@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Avalonia.Collections;
using Avalonia.Controls.Generators;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;

34
tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs

@ -658,6 +658,40 @@ namespace Avalonia.Controls.UnitTests.Presenters
Assert.Equal(expected, actual);
}
public void Should_Add_Containers_For_Items_After_Clear()
{
var target = CreateTarget(itemCount: 10);
var defaultItems = (IList<string>)target.Items;
var items = new AvaloniaList<string>(defaultItems);
target.Items = items;
target.ApplyTemplate();
target.Measure(new Size(100, 100));
target.Arrange(new Rect(target.DesiredSize));
Assert.Equal(10, target.Panel.Children.Count);
items.Clear();
target.Panel.Measure(new Size(100, 100));
target.Panel.Arrange(new Rect(target.Panel.DesiredSize));
target.Measure(new Size(100, 100));
target.Arrange(new Rect(target.DesiredSize));
Assert.Equal(0, target.Panel.Children.Count);
items.AddRange(defaultItems.Select(s => s + " new"));
target.Panel.Measure(new Size(100, 100));
target.Panel.Arrange(new Rect(target.Panel.DesiredSize));
target.Measure(new Size(100, 100));
target.Arrange(new Rect(target.DesiredSize));
Assert.Equal(10, target.Panel.Children.Count);
}
public class Vertical
{
[Fact]

Loading…
Cancel
Save