Master Detail нарушает параметры? - PullRequest
0 голосов
/ 28 ноября 2018

Мне не нужен 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.

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