From d64ec6a7626f5cfb559e6e32aeb2ec49fb8c2185 Mon Sep 17 00:00:00 2001 From: danwalmsley Date: Wed, 6 Nov 2019 21:10:19 +0000 Subject: [PATCH 1/2] set Scroll before calling base.OnTemplateApplied. --- src/Avalonia.Controls/ListBox.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/ListBox.cs b/src/Avalonia.Controls/ListBox.cs index b15a6ce668..4966e669ed 100644 --- a/src/Avalonia.Controls/ListBox.cs +++ b/src/Avalonia.Controls/ListBox.cs @@ -151,8 +151,8 @@ namespace Avalonia.Controls protected override void OnTemplateApplied(TemplateAppliedEventArgs e) { - base.OnTemplateApplied(e); Scroll = e.NameScope.Find("PART_ScrollViewer"); + base.OnTemplateApplied(e); } } } From ca60f9e70d457b5d910064aad6c3c6210f466455 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 6 Nov 2019 22:12:17 +0000 Subject: [PATCH 2/2] add unit test --- .../ListBoxTests.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs index 9a459328aa..df2508a3ed 100644 --- a/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests.cs @@ -47,6 +47,26 @@ namespace Avalonia.Controls.UnitTests Assert.IsType(target.Presenter); } + [Fact] + public void ListBox_Should_Find_Scrollviewer_In_Template() + { + var target = new ListBox + { + Template = ListBoxTemplate(), + }; + + ScrollViewer viewer = null; + + target.TemplateApplied += (sender, e) => + { + viewer = target.Scroll as ScrollViewer; + }; + + Prepare(target); + + Assert.NotNull(viewer); + } + [Fact] public void ListBoxItem_Containers_Should_Be_Generated() {