From c8323af3b1c616f6ecd27fe1a07ea8bf5e6e43bd Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 25 Sep 2020 16:12:17 +0200 Subject: [PATCH 1/2] Fix NRE int ItemContainerGenerator when item is null --- .../Generators/ItemContainerGenerator`1.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Avalonia.Controls/Generators/ItemContainerGenerator`1.cs b/src/Avalonia.Controls/Generators/ItemContainerGenerator`1.cs index 3a098593dc..d1fbb25cb1 100644 --- a/src/Avalonia.Controls/Generators/ItemContainerGenerator`1.cs +++ b/src/Avalonia.Controls/Generators/ItemContainerGenerator`1.cs @@ -47,11 +47,7 @@ namespace Avalonia.Controls.Generators { var container = item as T; - if (item == null) - { - return null; - } - else if (container != null) + if (container != null) { return container; } From f24b6b40476207cfa8e3965a27a50b9eaa031c47 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 25 Sep 2020 16:18:52 +0200 Subject: [PATCH 2/2] Add Test --- .../Generators/ItemContainerGeneratorTests.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs b/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs index ff3ad30a88..c5c7737f0d 100644 --- a/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs @@ -144,6 +144,16 @@ namespace Avalonia.Controls.UnitTests.Generators Assert.Equal("bar", container.Content); } + [Fact] + public void Materialize_Should_Create_Containers_When_Item_Is_Null() + { + var owner = new Decorator(); + var target = new ItemContainerGenerator(owner, ListBoxItem.ContentProperty, null); + var container = (ListBoxItem)target.Materialize(0, null).ContainerControl; + + Assert.True(container != null, "The containers is not materialized."); + } + private IList Materialize( IItemContainerGenerator generator, int index,