diff --git a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
index dfe8be2cec..17a00f23fd 100644
--- a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
+++ b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
@@ -6,19 +6,20 @@
ItemsRepeater
A data-driven collection control that incorporates a flexible layout system, custom views, and virtualization.
-
+
Stack - Vertical
Stack - Horizontal
UniformGrid - Vertical
UniformGrid - Horizontal
+
-
+
diff --git a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml.cs b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml.cs
index 214de89253..b56af5d5ea 100644
--- a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml.cs
@@ -3,6 +3,7 @@ using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.Layout;
using Avalonia.Markup.Xaml;
+using ControlCatalog.ViewModels;
namespace ControlCatalog.Pages
{
@@ -16,7 +17,7 @@ namespace ControlCatalog.Pages
this.InitializeComponent();
_repeater = this.FindControl("repeater");
_scroller = this.FindControl("scroller");
- DataContext = Enumerable.Range(1, 100000).Select(i => $"Item {i}" ).ToArray();
+ DataContext = new ItemsRepeaterPageViewModel();
}
private void InitializeComponent()
diff --git a/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs b/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs
new file mode 100644
index 0000000000..5304ba1f7d
--- /dev/null
+++ b/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs
@@ -0,0 +1,24 @@
+using System.Collections.ObjectModel;
+using System.Linq;
+using ReactiveUI;
+
+namespace ControlCatalog.ViewModels
+{
+ public class ItemsRepeaterPageViewModel : ReactiveObject
+ {
+ private int newItemIndex = 1;
+
+ public ItemsRepeaterPageViewModel()
+ {
+ Items = new ObservableCollection(
+ Enumerable.Range(1, 100000).Select(i => $"Item {i}"));
+ }
+
+ public ObservableCollection Items { get; }
+
+ public void AddItem()
+ {
+ Items.Insert(0, $"New Item {newItemIndex++}");
+ }
+ }
+}