|
|
@@ -3,6 +3,7 @@
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
+using Avalonia.Controls.Generators;
|
|
|
using Avalonia.Controls.Presenters;
|
|
|
using Avalonia.Controls.Primitives;
|
|
|
using Avalonia.Controls.Templates;
|
|
|
@@ -205,7 +206,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
|
|
|
|
|
|
Assert.Equal(new Vector(0, 5), ((IScrollable)target).Offset);
|
|
|
Assert.Equal(scrolledContainers, target.Panel.Children);
|
|
|
-
|
|
|
+
|
|
|
for (var i = 0; i < target.Panel.Children.Count; ++i)
|
|
|
{
|
|
|
Assert.Equal(items[i + 5], target.Panel.Children[i].DataContext);
|
|
|
@@ -215,6 +216,8 @@ namespace Avalonia.Controls.UnitTests.Presenters
|
|
|
Assert.Equal(new Vector(0, 0), ((IScrollable)target).Offset);
|
|
|
Assert.Equal(containers, target.Panel.Children);
|
|
|
|
|
|
+ var dcs = target.Panel.Children.Select(x => x.DataContext).ToList();
|
|
|
+
|
|
|
for (var i = 0; i < target.Panel.Children.Count; ++i)
|
|
|
{
|
|
|
Assert.Equal(items[i], target.Panel.Children[i].DataContext);
|
|
|
@@ -249,6 +252,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
|
|
|
private static ItemsPresenter CreateTarget(
|
|
|
ItemVirtualizationMode mode = ItemVirtualizationMode.Simple,
|
|
|
Orientation orientation = Orientation.Vertical,
|
|
|
+ bool useContainers = true,
|
|
|
int itemCount = 20)
|
|
|
{
|
|
|
ItemsPresenter result;
|
|
|
@@ -256,7 +260,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
|
|
|
|
|
|
var scroller = new ScrollContentPresenter
|
|
|
{
|
|
|
- Content = result = new ItemsPresenter
|
|
|
+ Content = result = new TestItemsPresenter(useContainers)
|
|
|
{
|
|
|
Items = items,
|
|
|
ItemsPanel = VirtualizingPanelTemplate(orientation),
|
|
|
@@ -287,5 +291,31 @@ namespace Avalonia.Controls.UnitTests.Presenters
|
|
|
Orientation = orientation,
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ private class TestItemsPresenter : ItemsPresenter
|
|
|
+ {
|
|
|
+ private bool _useContainers;
|
|
|
+
|
|
|
+ public TestItemsPresenter(bool useContainers)
|
|
|
+ {
|
|
|
+ _useContainers = useContainers;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override IItemContainerGenerator CreateItemContainerGenerator()
|
|
|
+ {
|
|
|
+ return _useContainers ?
|
|
|
+ new ItemContainerGenerator<TestContainer>(this, TestContainer.ContentProperty, null) :
|
|
|
+ new ItemContainerGenerator(this);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private class TestContainer : ContentControl
|
|
|
+ {
|
|
|
+ public TestContainer()
|
|
|
+ {
|
|
|
+ Width = 10;
|
|
|
+ Height = 10;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|