Browse Source

Add correct fixes for Carousel issue.

pull/1639/head
Dan Walmsley 8 years ago
parent
commit
055f7b216e
  1. 22
      src/Avalonia.Controls/Presenters/CarouselPresenter.cs

22
src/Avalonia.Controls/Presenters/CarouselPresenter.cs

@ -114,6 +114,8 @@ namespace Avalonia.Controls.Presenters
var generator = ItemContainerGenerator;
var containers = generator.RemoveRange(e.OldStartingIndex, e.OldItems.Count);
Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl));
MoveToPage(-1, 0);
}
break;
@ -125,25 +127,9 @@ namespace Avalonia.Controls.Presenters
generator.Clear();
Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl));
PanelCreated(Panel);
}
break;
case NotifyCollectionChangedAction.Replace:
if (!IsVirtualized)
{
for (var i = 0; i < e.OldItems.Count; ++i)
{
var index = i + e.OldStartingIndex;
var child = (IControl)e.NewItems[i];
Panel.Children[index] = child;
}
MoveToPage(-1, 0);
}
break;
case NotifyCollectionChangedAction.Move:
Panel.Children.MoveRange(e.OldStartingIndex, e.OldItems.Count, e.NewStartingIndex);
break;
break;
}
}

Loading…
Cancel
Save