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++}"); + } + } +}