From b651cd3a1bee4c0da033c76ea3624036d27c3aa1 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 19 Jul 2018 12:05:10 +0100 Subject: [PATCH] fix carousel-presenter when items are removed. --- src/Avalonia.Controls/Presenters/CarouselPresenter.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/Presenters/CarouselPresenter.cs b/src/Avalonia.Controls/Presenters/CarouselPresenter.cs index 1d5a187a73..f0f86b7fb4 100644 --- a/src/Avalonia.Controls/Presenters/CarouselPresenter.cs +++ b/src/Avalonia.Controls/Presenters/CarouselPresenter.cs @@ -115,6 +115,11 @@ namespace Avalonia.Controls.Presenters var containers = generator.RemoveRange(e.OldStartingIndex, e.OldItems.Count); Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl)); + if(SelectedIndex > containers.Count()) + { + SelectedIndex = containers.Count(); + } + #pragma warning disable 4014 MoveToPage(-1, SelectedIndex); #pragma warning restore 4014 @@ -130,7 +135,7 @@ namespace Avalonia.Controls.Presenters #pragma warning disable 4014 var newIndex = SelectedIndex; - + if(SelectedIndex < 0) { if(Items != null && Items.Count() > 0) @@ -251,4 +256,4 @@ namespace Avalonia.Controls.Presenters } } } -} \ No newline at end of file +}