ПРИЗМА Xamarin. Формирует понимание INavigationService.[Продолжение] - PullRequest
0 голосов
/ 23 сентября 2019

Интересно, можно ли использовать опцию, рассмотренную в приведенной ниже ссылке, с помощью Prism? PRISM Xamarin.Forms INavigationService с пониманием

Проект с использованием MasterDetail.

В XF без Prism с использованием PushAsync открывается страница без замены MainPage, NavigationBar и кнопки возврата.

  • App.css
MainPage = new NavigationPage(new MyMasterPage()); 
  • Вызов SecondPage из MyMasterPageViewModel.cs
await _navigation.PushAsync(new SecondPage());

Страница SecondPage открывается как модальнаяи с навигационной панелью и кнопкой возврата.Я не мог воспроизвести то же самое поведение, используя Prism.

Спасибо

1 Ответ

0 голосов
/ 23 сентября 2019

Начать свой пример того, что вы хотели бы сделать, это не то, как предполагается использовать MasterDetailPage.Чтобы помочь здесь, я проиллюстрирую на простом примере.MasterDetailPage никогда не должен быть заключен в NavigationPage, а скорее деталь MasterDetailPage должна быть NavigationPage с некоторой страницей, установленной в качестве содержимого.

var page = new MasterDetailPage
{
    Detail = new NavigationPage(new ContentPage())
};

В Prism предположим, что у вас есть MasterDetailPage с именем MainPage,и вы зарегистрировали NavigationPage и ContentPage с именем ViewA и другим с именем ViewB.

Правильный способ создания MasterDetailPage:

_navigationService.NavigateAsync("MainPage/NavigationPage/ViewA");

Теперь, если вы хотите нажатьViewB из ViewA, например:

_navigationService.NavigateAsync("ViewB");

. Вы можете увидеть это нажатие внутри NavigationPage с навигацией, чтобы вернуться к ViewA.Теперь давайте предположим, что вы хотите, чтобы это было модальным, что вы бы просто сделали:

_navigationService.NavigateAsync("ViewB?useModalNavigation=true");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...