Главная страница не открывается (формы Xamarin) - PullRequest
0 голосов
/ 07 октября 2018

У меня проблема при открытии мастер-страницы.В основном я использую приложение 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, но MainPage в App.cs - это страница навигации (это нужно было сделать для навигации по пользовательской панели навигации).Он хорошо работает с панелью навигации по умолчанию.

Как я могу это сделать, чтобы я мог вызвать главную страницу из пользовательской панели навигации, а также перемещаться?

PS Я не опубликовал весь кодглавной страницы и т. д., поскольку это код по умолчанию, который формы xamarin создают при выборе приложения masterdetail.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...