protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            AppViewModel = e?.Parameter as AppLevelModel;

            AppViewModel.MessageToDisplay += AppViewModel_MessageToDisplay;

            AppViewModel.NavigateBack -= NavigateBack;
            AppViewModel.NavigateBack += NavigateBack;

            AppViewModel.NavigateTo += (page, viewModel, command, reentry) =>
            {
                if (reentry || viewModel != AppViewModel?.ChildViewmodel)
                {
                    viewModel.OnNavigatingTo();
                    MainPaneFrame.Navigate(page, viewModel);
                    AppViewModel.VisitedPages.Push(viewModel);
                    AppViewModel.ChildViewmodel = viewModel;
                    AppViewModel.CanGoBack      = !viewModel.IsInitialAppPage;
                    ContentSplitView.IsPaneOpen = false;
                    command?.Execute();
                }
            };
        }
        private async void NavigationHelper(MenuItem <AppLevelModel> item, int currentIndex)
        {
            if (item.UseBackButton)
            {
                await TryNavagatingBack();
            }
            else
            {
                if (item.Reentry || item.ViewModel != AppViewModel?.ChildViewmodel)
                {
                    bool canNavigate;
                    if (AppViewModel.VisitedPages.Count == 0)
                    {
                        // No page to navigate away from
                        canNavigate = true;
                    }
                    else
                    {
                        // Allow page to perform any cleanup if necessary.
                        var currentPage = AppViewModel.VisitedPages.Peek();
                        canNavigate = await currentPage.OnNavigatingFrom();
                    }

                    if (canNavigate)
                    {
                        item.BeforeNavigatingCommand?.Execute();

                        MainPaneFrame.Navigate(item.Page, item.ViewModel);

                        AppViewModel.VisitedPages.Push(item.ViewModel);
                        AppViewModel.ChildViewmodel = item.ViewModel;
                        AppViewModel.CanGoBack      = !item.ViewModel.IsInitialAppPage;

                        item.AfterNavigatingCommand?.Execute();
                    }
                }
            }
        }