diff --git a/src/Perspex.Controls/Generators/ItemContainerGenerator.cs b/src/Perspex.Controls/Generators/ItemContainerGenerator.cs index a162ce08de..c945d7b5bf 100644 --- a/src/Perspex.Controls/Generators/ItemContainerGenerator.cs +++ b/src/Perspex.Controls/Generators/ItemContainerGenerator.cs @@ -94,9 +94,15 @@ namespace Perspex.Controls.Generators /// public virtual IEnumerable RemoveRange(int startingIndex, int count) { - var result = _containers.GetRange(startingIndex, count); - _containers.RemoveRange(startingIndex, count); - Dematerialized?.Invoke(this, new ItemContainerEventArgs(startingIndex, result)); + List result = new List(); + + if (startingIndex < _containers.Count) + { + result.AddRange(_containers.GetRange(startingIndex, count)); + _containers.RemoveRange(startingIndex, count); + Dematerialized?.Invoke(this, new ItemContainerEventArgs(startingIndex, result)); + } + return result; } diff --git a/src/Perspex.Controls/Presenters/CarouselPresenter.cs b/src/Perspex.Controls/Presenters/CarouselPresenter.cs index d8932b1e78..6776c3a3bc 100644 --- a/src/Perspex.Controls/Presenters/CarouselPresenter.cs +++ b/src/Perspex.Controls/Presenters/CarouselPresenter.cs @@ -115,6 +115,7 @@ namespace Perspex.Controls.Presenters Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl)); } break; + } }