From bba74db5dcf425c2d45a8128da15f5f616b78677 Mon Sep 17 00:00:00 2001 From: Samantha Houts Date: Wed, 30 Mar 2016 14:43:50 -0700 Subject: [W] Setting CurrentPage in CarouselPage ctor works --- .../Bugzilla39458.cs | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs') diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs new file mode 100644 index 00000000..f24344ee --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs @@ -0,0 +1,84 @@ +using System; + +using Xamarin.Forms.CustomAttributes; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 39458, "[UWP/WinRT] Cannot Set CarouselPage.CurrentPage Inside Constructor", PlatformAffected.WinRT)] + public class Bugzilla39458 : TestCarouselPage + { + public class ChildPage : ContentPage + { + public ChildPage(int pageNumber) + { + var layout = new StackLayout(); + var MyLabel = new Label { + VerticalOptions = LayoutOptions.Center, + HorizontalOptions = LayoutOptions.Center, + FontSize = 21, + TextColor = Color.White, + Text = $"This is page {pageNumber}" + }; + var TestBtn = new Button { + Text = "Go to Page 2", + IsEnabled = false, + BackgroundColor = Color.White + }; + + if (pageNumber != 2) + { + TestBtn.IsEnabled = true; + TestBtn.Clicked += TestBtn_Clicked; + } + + layout.Children.Add(MyLabel); + layout.Children.Add(TestBtn); + Content = layout; + } + + private void TestBtn_Clicked(object sender, EventArgs e) + { + var carousel = Application.Current.MainPage as CarouselPage; + carousel.CurrentPage = carousel.Children[1]; + } + } + + public class DesiredPage : ChildPage + { + public DesiredPage(int pageNumber) : base(pageNumber) + { + } + } + + protected override void Init() + { + var firstPage = new ChildPage(1); + firstPage.BackgroundColor = Color.Blue; + Children.Add(firstPage); + + var secondPage = new DesiredPage(2); + secondPage.BackgroundColor = Color.Red; + Children.Add(secondPage); + + var thirdPage = new ChildPage(3); + thirdPage.BackgroundColor = Color.Green; + Children.Add(thirdPage); + + CurrentPage = secondPage; + } + +#if UITEST + [Test] + public void Bugzilla39458Test() + { + RunningApp.WaitForElement(q => q.Marked("This is page 2")); + } +#endif + } +} -- cgit v1.2.3