From 1292d237cefe8e89a090b43e42691e42b9b0a4b0 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 20 Apr 2016 17:58:20 +0100 Subject: [PATCH] fixed carousel presnter not removing last container, was not recalculating indexes when items are removed. --- .../Presenters/CarouselPresenter.cs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/Perspex.Controls/Presenters/CarouselPresenter.cs b/src/Perspex.Controls/Presenters/CarouselPresenter.cs index 8851a0bdb2..d8932b1e78 100644 --- a/src/Perspex.Controls/Presenters/CarouselPresenter.cs +++ b/src/Perspex.Controls/Presenters/CarouselPresenter.cs @@ -111,18 +111,8 @@ namespace Perspex.Controls.Presenters if (!IsVirtualized) { var generator = ItemContainerGenerator; - - for (int index = 0; index < e.OldItems.Count; index++) - { - var currentContainer = generator.ContainerFromIndex(e.OldStartingIndex + index); - - if (currentContainer != null) - { - Panel.Children.Remove(currentContainer); - } - - generator.Dematerialize(e.OldStartingIndex + index, 1); - } + var containers = generator.RemoveRange(e.OldStartingIndex, e.OldItems.Count); + Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl)); } break; }