From d22b4ecbc4def22ae47e6be30b94a0071c46d7cf Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 3 Jun 2020 16:06:42 +0200 Subject: [PATCH] Give ItemsRepeater items a background. So one can see their bounds easily. --- samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml | 5 ++++- .../ViewModels/ItemsRepeaterPageViewModel.cs | 13 +++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml index d28e1f8280..e600e644af 100644 --- a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml +++ b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml @@ -26,7 +26,10 @@ - + diff --git a/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs b/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs index de5669123f..73aaeff994 100644 --- a/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Collections.ObjectModel; using System.Linq; +using Avalonia.Media; using ReactiveUI; namespace ControlCatalog.ViewModels @@ -27,7 +28,7 @@ namespace ControlCatalog.ViewModels public void AddItem() { var index = SelectedItem != null ? Items.IndexOf(SelectedItem) : -1; - Items.Insert(index + 1, new Item { Text = $"New Item {_newItemIndex++}" }); + Items.Insert(index + 1, new Item(index + 1) { Text = $"New Item {_newItemIndex++}" }); } public void RandomizeHeights() @@ -52,7 +53,7 @@ namespace ControlCatalog.ViewModels _newGenerationIndex++; return new ObservableCollection( - Enumerable.Range(1, 100000).Select(i => new Item + Enumerable.Range(1, 100000).Select(i => new Item(i) { Text = $"Item {i.ToString()} {suffix}" })); @@ -61,6 +62,12 @@ namespace ControlCatalog.ViewModels public class Item : ReactiveObject { private double _height = double.NaN; + private int _index; + + public Item(int index) + { + _index = index; + } public string Text { get; set; } @@ -69,6 +76,8 @@ namespace ControlCatalog.ViewModels get => _height; set => this.RaiseAndSetIfChanged(ref _height, value); } + + public IBrush Background => ((_index % 2) == 0) ? Brushes.Yellow : Brushes.Wheat; } } }