diff --git a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
index fd730c5293..45f7dff49c 100644
--- a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
+++ b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
@@ -2,12 +2,10 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
-using System.Collections;
using System.Collections.Generic;
using System.Linq;
-using System.Reactive.Subjects;
+using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
-using Avalonia.Controls.Utils;
namespace Avalonia.Controls.Generators
{
@@ -185,11 +183,15 @@ namespace Avalonia.Controls.Generators
/// The created container control.
protected virtual IControl CreateContainer(object item)
{
- var result = Owner.MaterializeDataTemplate(item, ItemTemplate);
+ var result = item as IControl;
- if (result != null && !(item is IControl))
+ if (result == null)
{
- result.DataContext = item;
+ result = new ContentPresenter
+ {
+ ContentTemplate = ItemTemplate,
+ Content = item,
+ };
}
return result;
diff --git a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
index 0581568878..ec0b19308c 100644
--- a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
+++ b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
@@ -102,7 +102,6 @@
-
diff --git a/tests/Avalonia.Controls.UnitTests/CarouselTests.cs b/tests/Avalonia.Controls.UnitTests/CarouselTests.cs
index 554aab68c3..0e3c6f5953 100644
--- a/tests/Avalonia.Controls.UnitTests/CarouselTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/CarouselTests.cs
@@ -50,8 +50,8 @@ namespace Avalonia.Controls.UnitTests
Assert.Equal(1, target.GetLogicalChildren().Count());
var child = target.GetLogicalChildren().Single();
- Assert.IsType(child);
- Assert.Equal("Foo", ((TextBlock)child).Text);
+ Assert.IsType(child);
+ Assert.Equal("Foo", ((ContentPresenter)child).Content);
}
[Fact]
diff --git a/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs b/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs
index a111515848..5d2269e73c 100644
--- a/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Generators/ItemContainerGeneratorTests.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls.Generators;
+using Avalonia.Controls.Presenters;
using Xunit;
namespace Avalonia.Controls.UnitTests.Generators
@@ -19,8 +20,8 @@ namespace Avalonia.Controls.UnitTests.Generators
var containers = Materialize(target, 0, items);
var result = containers
.Select(x => x.ContainerControl)
- .OfType()
- .Select(x => x.Text)
+ .OfType()
+ .Select(x => x.Content)
.ToList();
Assert.Equal(items, result);
diff --git a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
index 92c89039f5..ce2dc4ab6c 100644
--- a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
@@ -27,7 +27,10 @@ namespace Avalonia.Controls.UnitTests
target.ApplyTemplate();
target.Presenter.ApplyTemplate();
- Assert.IsType