protected void AddSubsitutionBackNavigateAction(string id, Func <bool> action) { if (!SubstitutionBackNavigation.ContainsKey(id)) { SubstitutionBackNavigation.Add(id, action); var nav = Windows.UI.Core.SystemNavigationManager.GetForCurrentView(); nav.AppViewBackButtonVisibility = Windows.UI.Core.AppViewBackButtonVisibility.Visible; nav.BackRequested += Nav_BackRequested; } }
protected bool RemoveSubsitutionBackNavigateAction(string id) { if (SubstitutionBackNavigation.ContainsKey(id)) { if (SubstitutionBackNavigation.Count == 1) { var nav = Windows.UI.Core.SystemNavigationManager.GetForCurrentView(); nav.BackRequested -= Nav_BackRequested; // バックナビゲーションが出来ない場合にBackButtonを非表示に var pageManager = App.Current.Container.Resolve <PageManager>(); if (!pageManager.NavigationService.CanGoBack()) { nav.AppViewBackButtonVisibility = Windows.UI.Core.AppViewBackButtonVisibility.Collapsed; } } return(SubstitutionBackNavigation.Remove(id)); } else { return(false); } }