【发布时间】:2020-01-02 01:43:09
【问题描述】:
我创建了一个主从页面
我正在将项目列表加载到“详细”框架/窗口中
我想用一个模板/视图替换该页面的内容,该模板/视图永远不会作为菜单项中的项目存在
我尝试替换加载页面的 MainPage 和 Navigation,但您丢失了 Master Detail 上下文 - 菜单
请有人告诉我,为了在主详细信息的上下文中用我选择的一个替换当前页面,我调用了什么?
这不起作用,例如 - 它会删除 MasterDetail 菜单
Navigation.PushAsync(new Arcade.Index());
我创建 MasterDetailPage 几乎是让 Visual Studio 生成它。我是在成功登录后设置的,像这样:
var welcome = new Pages.Welcome();
Application.Current.MainPage = welcome;
这是 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();
【问题讨论】:
-
设置MasterDetailPage的Detail属性
-
我已经阅读了几次,但无法从我加载的视图中访问它。我加载的页面与我能找到的 Master Detail 之间没有任何关系
-
要么使用 Navigation 导航到 Detail 框架内的新页面,要么从 App.Current.MainPage 引用当前 MasterDetail,或者在创建详细信息页面时手动传递对 MasterDetail 的引用
-
App.Current.MainPage 替换了整个窗口,我看不到通过该方法访问现有 MasterDetail 的任何方式。我在示例中给出的导航替换了整个窗口。第三种方法看不懂?
标签: xamarin xamarin.forms