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

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

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

Loading…
Cancel
Save