Browse Source

fixed remove range, not taking into account if a container yet existed or not.

pull/519/head
Dan Walmsley 10 years ago
parent
commit
09d4f61db2
  1. 12
      src/Perspex.Controls/Generators/ItemContainerGenerator.cs
  2. 1
      src/Perspex.Controls/Presenters/CarouselPresenter.cs

12
src/Perspex.Controls/Generators/ItemContainerGenerator.cs

@ -94,9 +94,15 @@ namespace Perspex.Controls.Generators
/// <inheritdoc/>
public virtual IEnumerable<ItemContainer> RemoveRange(int startingIndex, int count)
{
var result = _containers.GetRange(startingIndex, count);
_containers.RemoveRange(startingIndex, count);
Dematerialized?.Invoke(this, new ItemContainerEventArgs(startingIndex, result));
List<ItemContainer> result = new List<ItemContainer>();
if (startingIndex < _containers.Count)
{
result.AddRange(_containers.GetRange(startingIndex, count));
_containers.RemoveRange(startingIndex, count);
Dematerialized?.Invoke(this, new ItemContainerEventArgs(startingIndex, result));
}
return result;
}

1
src/Perspex.Controls/Presenters/CarouselPresenter.cs

@ -115,6 +115,7 @@ namespace Perspex.Controls.Presenters
Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl));
}
break;
}
}

Loading…
Cancel
Save