打开母版页时出现问题。基本上,当您在新项目上选择MasterDetail应用程序时,我使用的是xamarin表单创建的默认masterdetail应用程序。我有一个自定义导航栏,当我单击按钮时,它显示了母版页。我是通过以下方式实现的:
public ICommand OpenMenuCommand
{
get
{
return new Command(() =>
{
var mainPage = (Application.Current.MainPage as NavigationPage).CurrentPage;
(mainPage as MasterDetailPage).IsPresented = true;
});
}
}
当它打开并尝试选择要导航到的页面时,我在“根页面”中为空(您可以在以下代码中看到):
public partial class MenuPage : ContentPage
{
MainPage RootPage { get => Application.Current.MainPage as MainPage; }
List<HomeMenuItem> menuItems;
public MenuPage ()
{
InitializeComponent ();
menuItems = new List<HomeMenuItem>
{
new HomeMenuItem {Id = MenuItemType.CLIENTS, Title="CLIENTS" },
new HomeMenuItem {Id = MenuItemType.WIZARD, Title="WIZARD" },
new HomeMenuItem {Id = MenuItemType.SETTINGS, Title="SETTINGS" },
new HomeMenuItem {Id = MenuItemType.GUIDES, Title="GUIDES AND TEMPLATES" },
new HomeMenuItem {Id = MenuItemType.HELP, Title="HELP" },
new HomeMenuItem {Id = MenuItemType.LOGOUT, Title="LOGOUT" }
};
ListViewMenu.ItemsSource = menuItems;
ListViewMenu.SelectedItem = menuItems[0];
ListViewMenu.ItemSelected += async (sender, e) =>
{
if (e.SelectedItem == null)
return;
var id = (int)((HomeMenuItem)e.SelectedItem).Id;
await RootPage.NavigateFromMenu(id);
};
}
}
此处的“根页面”是一个MainPage,但是App.cs中的MainPage是“导航页面”(必须执行此操作才能使用自定义导航栏进行导航)。 它可以与默认表单导航栏一起很好地工作。
我该怎么做,以便可以从自定义导航栏调用母版页,也可以进行导航?
P.S。我没有发布主页等的所有代码,因为它是xamarin表单在您选择创建masterdetail应用程序时创建的默认代码。
谢谢。