From 0bf9404e0039b36ce2ca84ce114c7f57eedaa4a8 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 29 Jul 2016 21:55:34 +0200 Subject: [PATCH] Deafult ItemsPresenter virtualization to None And override it in ListBox. This prevents ItemsPresenter thinking it's virtualized in a TreeView. Fixes #610. --- src/Avalonia.Controls/ListBox.cs | 3 ++- src/Avalonia.Controls/Presenters/ItemsPresenter.cs | 2 +- tests/Avalonia.Controls.UnitTests/ListBoxTests.cs | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/ListBox.cs b/src/Avalonia.Controls/ListBox.cs index 84e4751d37..fce568e56d 100644 --- a/src/Avalonia.Controls/ListBox.cs +++ b/src/Avalonia.Controls/ListBox.cs @@ -42,7 +42,7 @@ namespace Avalonia.Controls /// /// Defines the property. /// - public static readonly AvaloniaProperty VirtualizationModeProperty = + public static readonly StyledProperty VirtualizationModeProperty = ItemsPresenter.VirtualizationModeProperty.AddOwner(); private IScrollable _scroll; @@ -53,6 +53,7 @@ namespace Avalonia.Controls static ListBox() { ItemsPanelProperty.OverrideDefaultValue(DefaultPanel); + VirtualizationModeProperty.OverrideDefaultValue(ItemVirtualizationMode.Simple); } /// diff --git a/src/Avalonia.Controls/Presenters/ItemsPresenter.cs b/src/Avalonia.Controls/Presenters/ItemsPresenter.cs index 9a7df4e337..2e586a25e3 100644 --- a/src/Avalonia.Controls/Presenters/ItemsPresenter.cs +++ b/src/Avalonia.Controls/Presenters/ItemsPresenter.cs @@ -20,7 +20,7 @@ namespace Avalonia.Controls.Presenters public static readonly StyledProperty VirtualizationModeProperty = AvaloniaProperty.Register( nameof(VirtualizationMode), - defaultValue: ItemVirtualizationMode.Simple); + defaultValue: ItemVirtualizationMode.None); private ItemVirtualizer _virtualizer; diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs index a685f49545..aa20e86854 100644 --- a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs @@ -164,6 +164,7 @@ namespace Avalonia.Controls.UnitTests Name = "PART_ItemsPresenter", [~ItemsPresenter.ItemsProperty] = parent.GetObservable(ItemsControl.ItemsProperty).AsBinding(), [~ItemsPresenter.ItemsPanelProperty] = parent.GetObservable(ItemsControl.ItemsPanelProperty).AsBinding(), + [~ItemsPresenter.VirtualizationModeProperty] = parent.GetObservable(ListBox.VirtualizationModeProperty).AsBinding(), } }); }