Browse Source

fix for carousel presenter in isvirtualized = false

pull/519/head
danwalmsley 10 years ago
parent
commit
9940464fa1
  1. 20
      src/Perspex.Controls/Presenters/CarouselPresenter.cs

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

@ -103,7 +103,25 @@ namespace Perspex.Controls.Presenters
/// <inheritdoc/>
protected override void ItemsChanged(NotifyCollectionChangedEventArgs e)
{
// TODO: Handle items changing.
// TODO: Handle items changing.
switch(e.Action)
{
case NotifyCollectionChangedAction.Remove:
if (!IsVirtualized)
{
var generator = ItemContainerGenerator;
foreach (var removed in e.OldItems)
{
var currentContainer = generator.Containers.FirstOrDefault((c) => c.Item == removed);
var index = generator.IndexFromContainer(currentContainer.ContainerControl);
Panel.Children.Remove(currentContainer.ContainerControl);
generator.Dematerialize(index, 1);
}
}
break;
}
}
/// <summary>

Loading…
Cancel
Save