我已经创建了一个“母版详细信息页面”
我正在将项目列表加载到“详细信息”框架/窗口中
我想用一个模板/视图替换该页面的内容,该模板/视图从没有任何理由作为菜单项中的一项存在
我尝试替换加载页面的MainPage和Navigation,但是您丢失了Master Detail上下文-菜单
请问有人告诉我我叫什么以便在保持“主详细信息”上下文的情况下用我选择的一个页面替换当前页面吗?
例如,这不起作用-删除了MasterDetail菜单
Navigation.PushAsync(new Arcade.Index());
我已经通过让Visual Studio生成MasterDetailPage来创建了MasterDetailPage。我成功登录后进行设置,如下所示:
var welcome = new Pages.Welcome();
Application.Current.MainPage = welcome;
这是XAML的摘录
<MasterDetailPage.Master>
<pages:WelcomeMaster x:Name="MasterPage" />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<pages:Index />
</x:Arguments>
</NavigationPage>
我已将此代码添加到了Welcome后面的代码中
InitializeComponent();
MasterPage.ListView.ItemSelected += ListView_ItemSelected;
this.Detail = new NavigationPage(new Arcade.Index());
尽管如此,我稍后再调用时,MasterDetail菜单消失了
((MasterDetailPage)Application.Current.MainPage).Detail = new Arcade.Index();
答案 0 :(得分:1)
1-使用App.Current.Mainpage
var md = (MasterDetailPage)App.Current.MainPage;
md.Detail = new MyPage();
2-使用导航
最初创建细节时,请将其包裹在NavigationPage
this.Detail = new NavigaitionPage(new Page1());
然后,Page1
可以在Page2
窗格中导航到Detail
Navigation.PushAsync(new Page2());
3-明确传递对MasterDetailPage
// when you create Page1, pass a reference to the MasterDetailPage
// you will also need to modify Page1's constructor
this.Detail = new Page1(this);
答案 1 :(得分:1)
在App.xaml.cs中添加静态方法,然后可以使用它在代码中导航
int
并像这样使用它
null