Browse Source

fix for carousel presenter in isvirtualized = false

pull/519/head
danwalmsley 11 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/> /// <inheritdoc/>
protected override void ItemsChanged(NotifyCollectionChangedEventArgs e) 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> /// <summary>

Loading…
Cancel
Save