Мне не нужен MasterDetail, пока я сначала не переберу два обычных ContentPages, где я собираю информацию, которая понадобится MasterDetail.ContentPages используют INavigationParameters, отправленные OnNavigatedTo и OnNavigatedFrom для этой собранной информации.
Модель представления SecondPage обрабатывает команду кнопки, в которой обработчик вызывает MasterDetail:
NavigationService.NavigateAsync ("CompareSelectionsMasterDetail / CompareSelectionsNavigationPage / RangeCircle", параметры);
Конечно, RangeCircleViewModel.OnNavigatedTo получает параметры.Однако, когда я возвращаюсь (как и в случае с кнопкой Android), его OnNavigatedFrom не называется , таким образом отправляя нулевые параметры обратно, оставляя мои ContentPages без представления о их состоянии.
viewmodel для CompareSelectionMasterDetail ничего не делает, а viewmodel для CompareSelectionsNavigationPage просто делает это:
public class CompareSelectionsNavigationPage : NavigationPage, INavigationPageOptions
{
public bool ClearNavigationStackOnNavigation => false;
}
Я не уверен, что значит иметь NavigationPage в XAML MasterDetailPage и отдельную CompareSelectionsNavigationPage, котораяЯ звоню с Prism, но если я удаляю XAML, страница RangeCircle не отображается.Если у меня есть только один XAML и я изменяю навигацию Prism на CompareSelectionsMasterDetail / NavigationPage / RangeCircle, я получаю то же поведение, что и обе страницы NavigationPages.
Мой XAML MasterDetail прост.
> <MasterDetailPage.Master>
> <NavigationPage Title="Required Foo" Icon="hamburger_icon.png">
> <x:Arguments>
> <ContentPage Title="Menu">
> <StackLayout Padding="40">
> <!-- TODO: // Update the Layout and add some real menu items -->
> <Label Text="Hello John"/>
> <Button Text="Range Circle" Command="{Binding NavigateToRangeCircleCommand}" CommandParameter="ViewA" />
> </StackLayout>
> </ContentPage>
> </x:Arguments>
> </NavigationPage> </MasterDetailPage.Master>
Каждый пример, который я могу найти для Master Detail (особенно с Prism), запускается в приложении со страницей Master Detail.Я не уверен, что мое использование является то, что нарушает OnNavigatedFrom?(В основном ContentPage (Page1) -> ContentPage (Page2) -> MasterDetail-> NavigationPage-> NavigationPage-> ContentPage (RangeCircle))
У отдельных ContentPages нет проблем с вызовом OnNavigatedFrom.