Explorar o código

fix carousel-presenter when items are removed.

Dan Walmsley %!s(int64=7) %!d(string=hai) anos
pai
achega
b651cd3a1b
Modificáronse 1 ficheiros con 7 adicións e 2 borrados
  1. 7 2
      src/Avalonia.Controls/Presenters/CarouselPresenter.cs

+ 7 - 2
src/Avalonia.Controls/Presenters/CarouselPresenter.cs

@@ -115,6 +115,11 @@ namespace Avalonia.Controls.Presenters
                         var containers = generator.RemoveRange(e.OldStartingIndex, e.OldItems.Count);
                         Panel.Children.RemoveAll(containers.Select(x => x.ContainerControl));
 
+                        if(SelectedIndex > containers.Count())
+                        {
+                            SelectedIndex = containers.Count();
+                        }
+
 #pragma warning disable 4014
                         MoveToPage(-1, SelectedIndex);
 #pragma warning restore 4014
@@ -130,7 +135,7 @@ namespace Avalonia.Controls.Presenters
 
 #pragma warning disable 4014
                         var newIndex = SelectedIndex;
-
+                        
                         if(SelectedIndex < 0)
                         {
                             if(Items != null && Items.Count() > 0)
@@ -251,4 +256,4 @@ namespace Avalonia.Controls.Presenters
             }
         }
     }
-}
+}