Как отправить страницы в MasterDetailPage с помощью Mvvm - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу использовать Mvvm (Basic Mvvm) для MasterDetailPage разработки. Но сталкивается с проблемой, чтобы подтолкнуть новый ContentPage к Detail

Если я использую код позади , то нет проблем, я могу сделать, как показано ниже

private void Button_Clicked(object sender, System.EventArgs e)
{
  Detail=  new NavigationPage(new Menu1Page());
}

Но когда дело доходит до Mvvm в ViewModel У меня нет Подробно доступа к странице там. Так что я могу это, но оно скрывается MasterDetailPage

async Task Menu1Page()
{
   await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new Menu1Page());
}

Итак, как можно отправить страницы на Detail с Mvvm?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы также можете получить доступ к странице Detail в ViewModel. Просто вам нужно разыграть App.Current.MainPage как MasterDetailPage. Посмотрите на код ниже.

async Task NavigateNext()
{
   await (App.Current.MainPage as MasterDetailPage).Detail.Navigation.PushAsync(new Menu1Page());
   //(App.Current.MainPage as MasterDetailPage).IsPresented = false;
}

Приведенный выше фрагмент кода выдвигает страницы как дочерний элемент MasterDetailPage, поэтому вы можете вернуться назад, нажав стрелку назад на Navigationbar.

Вы можете установить страницы непосредственно на Detail страницу, она показывает страницы на первой странице MasterDetailPage, в этом сценарии стрелка назад не будет доступна для возврата, как показано ниже

(App.Current.MainPage as MasterDetailPage).Detail = new NavigationPage(new Menu1Page());
//(App.Current.MainPage as MasterDetailPage).IsPresented = false;
0 голосов
/ 08 ноября 2018

По умолчанию нет.

Вам необходимо определить BindingContext для страницы и использовать навигацию с выделенным кодом.

Или используйте NavigationService, подробнее Навигация корпоративного приложения

Или используйте для этого любой фреймворк Mvvm.

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