所以我得到的页面一定没有父异常。当我试图从一个页面导航到另一个已经包含在另一个选项卡中的页面时,就会发生这种情况。在将页面加载到tabbedpage本身之前,我将它们放在一个名为pages的列表中,这显然是tabbedpage从中获取其子级的地方。我还想让这个列表和我的导航按钮一起工作。但每当我尝试使用它们时,我就有例外。以下是我如何加载页面:
private int pageNavCount = 0;
private list<ContentPage> pages = nwe List<ContentPage> (0);
public MainCPage ()
{
Create ();
Children.Add(pages[0]);
Children.Add(pages[1]);
Children.Add(pages[2]);
}
下面是我如何在列表中添加一页:
pages.Add (new ContentPage {
Title="Start Pagina",
BackgroundImage="@drawable/background.jpg",
Content = new StackLayout {
Padding = 50,
BackgroundColor = Color.Black,
Opacity = 0.75,
Children = {
//The controls and stuff
}
}
});
这就是我如何使用带有导航按钮的页面列表:
private void NavButtonNext_Clicked (object sender, EventArgs e)
{
pageNavCount++;
this.Navigation.PushAsync(pages[pageNavCount]);
}
private void NavButtonPrev_Clicked (object sender, EventArgs e)
{
pageNavCount--;
this.Navigation.PushAsync(ages[pageNavCount]);
}
当我尝试按下一个按钮时,我会得到“页面不能已经有父级”异常。
我不想最后为每一页都做新的按钮!有人能告诉我我做错了什么吗?
最佳答案
如果要导航到另一个已打开的选项卡中的页面,则应执行以下操作:
// you will need a reference to your TabbedPage
pageNavCount--;
tabs.CurrentPage = pages[pageNavCount];
这个blog在以编程方式切换选项卡上有很好的写操作。