Browse Source

fix for failing tests on CarouselPage and TabbedPage

pull/20798/head
timunie 5 months ago
parent
commit
4c2894bf3a
  1. 9
      src/Avalonia.Controls/Page/CarouselPage.cs
  2. 9
      src/Avalonia.Controls/Page/TabbedPage.cs

9
src/Avalonia.Controls/Page/CarouselPage.cs

@ -116,6 +116,8 @@ namespace Avalonia.Controls
{
base.OnApplyTemplate(e);
var requestedIndex = SelectedIndex;
if (_carousel != null)
{
_carousel.SelectionChanged -= OnCarouselSelectionChanged;
@ -126,7 +128,6 @@ namespace Avalonia.Controls
if (_carousel != null)
{
_carousel.SelectionChanged += OnCarouselSelectionChanged;
_carousel.ContainerPrepared += OnCarouselContainerPrepared;
_carousel.PageTransition = PageTransition;
_carousel.ItemsPanel = ItemsPanel;
@ -134,11 +135,13 @@ namespace Avalonia.Controls
_carousel.IsSwipeEnabled = IsGestureEnabled;
_carousel.ItemsSource = (IEnumerable?)ItemsSource ?? Pages;
if (SelectedIndex >= 0)
if (requestedIndex >= 0)
{
_carousel.SelectedIndex = SelectedIndex;
_carousel.SelectedIndex = requestedIndex;
}
_carousel.SelectionChanged += OnCarouselSelectionChanged;
UpdateActivePage();
}
}

9
src/Avalonia.Controls/Page/TabbedPage.cs

@ -179,6 +179,8 @@ namespace Avalonia.Controls
{
base.OnApplyTemplate(e);
var requestedIndex = SelectedIndex;
if (_tabControl != null)
{
_tabControl.SelectionChanged -= TabControl_SelectionChanged;
@ -192,13 +194,14 @@ namespace Avalonia.Controls
if (_tabControl != null)
{
_tabControl.SelectionChanged += TabControl_SelectionChanged;
_tabControl.ContainerPrepared += OnContainerPrepared;
_tabControl.ContainerClearing += OnContainerClearing;
_tabControl.ItemsSource = (IEnumerable?)ItemsSource ?? Pages;
if (SelectedIndex >= 0)
_tabControl.SelectedIndex = SelectedIndex;
if (requestedIndex >= 0)
_tabControl.SelectedIndex = requestedIndex;
_tabControl.SelectionChanged += TabControl_SelectionChanged;
if (PageTransition != null)
_tabControl.PageTransition = PageTransition;

Loading…
Cancel
Save