母版页未打开(Xamarin表单)

时间:2018-10-07 17:29:35

标签: forms xamarin navigation master-pages

打开母版页时出现问题。基本上,当您在新项目上选择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应用程序时创建的默认代码。

谢谢。

0 个答案:

没有答案