示例#1
0
        private static async Task <bool> CallClassicOnNavigatingFrom(object viewmodel, NavigationMode mode, Page sourcePage, object sourceParameter, Type targetType, object targetParameter, bool suspending)
        {
            var deferral            = new DeferralManager();
            var navigatingEventArgs = new Classic.NavigatingEventArgs(deferral)
            {
                Page                = sourcePage,
                PageType            = sourcePage?.GetType(),
                Parameter           = sourceParameter,
                NavigationMode      = mode,
                TargetPageType      = targetType,
                TargetPageParameter = targetParameter,
                Suspending          = suspending,
            };

            try
            {
                var vm = viewmodel as Classic.INavigatingAwareAsync;
                if (vm != null)
                {
                    await vm.OnNavigatingFromAsync(navigatingEventArgs);

                    await deferral.WaitForDeferralsAsync();
                }
            }
            catch
            {
                Debugger.Break();
            }
            return(navigatingEventArgs.Cancel);
        }
示例#2
0
        private async Task <bool> NavingFromAsync(Classic.INavigatingAwareAsync viewmodel, Page page, object currentParameter, bool suspending, NavigationMode navigationMode, Type targetPageType, object targetParameter)
        {
            var deferral            = new DeferralManager();
            var navigatingEventArgs = new Classic.NavigatingEventArgs(deferral)
            {
                Page                = page,
                Parameter           = currentParameter,
                Suspending          = suspending,
                NavigationMode      = navigationMode,
                TargetPageType      = targetPageType,
                TargetPageParameter = targetParameter,
            };

            try
            {
                await viewmodel.OnNavigatingFromAsync(navigatingEventArgs);

                await deferral.WaitForDeferralsAsync();
            }
            catch
            {
                Debugger.Break();
            }
            return(navigatingEventArgs.Cancel);
        }
 public Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     if (galleryMetaInfo == null)
         BootStrapper.Current.SessionState["GalleryInfo"] = new GalleryMetaInfo { Gallery = Images, SelectedIndex = FlipViewIndex };
     else
         galleryMetaInfo.SelectedIndex = FlipViewIndex;
     return Task.CompletedTask;
 }
示例#4
0
        public async Task <bool> NavingFromCancelsAsync(object viewmodel, NavigationMode mode, Page sourcePage, Type sourceType, object sourceParameter, Page targetPage, Type targetType, object targetParameter, bool suspending)
        {
            Services.NavigationService.NavigationService.DebugWrite();

            if (sourcePage == null)
            {
                return(false);
            }
            else if (viewmodel == null)
            {
                return(false);
            }
            else if (viewmodel is Classic.INavigatingAwareAsync)
            {
                var deferral            = new DeferralManager();
                var navigatingEventArgs = new Classic.NavigatingEventArgs(deferral)
                {
                    Page                = sourcePage,
                    PageType            = sourcePage?.GetType(),
                    Parameter           = sourceParameter,
                    NavigationMode      = mode,
                    TargetPageType      = targetType,
                    TargetPageParameter = targetParameter,
                    Suspending          = suspending,
                };
                try
                {
                    var vm = viewmodel as Classic.INavigatingAwareAsync;
                    await vm?.OnNavigatingFromAsync(navigatingEventArgs);

                    await deferral.WaitForDeferralsAsync();
                }
                catch
                {
                    Debugger.Break();
                }
                return(navigatingEventArgs.Cancel);
            }
            else if (viewmodel is Portable.IConfirmNavigationAsync)
            {
                var parameters = new Portable.NavigationParameters();
                parameters.Add("NavigationMode", mode.ToPrismNavigationMode());
                parameters.Add("SourceType", sourceType);
                parameters.Add("SourceParameter", sourceParameter);
                parameters.Add("TargetType", targetType);
                parameters.Add("TargetParameter", targetParameter);
                parameters.Add("Suspending", suspending);
                var vm = viewmodel as Portable.IConfirmNavigationAsync;
                return(!await vm?.CanNavigateAsync(parameters));
            }
            else
            {
                return(true);
            }
        }
 public override void OnNavigatingFrom(NavigatingEventArgs args)
 {
     try
     {
         ApplicationView view = ApplicationView.GetForCurrentView();
         view.ExitFullScreenMode();
     }
     catch (Exception)
     {
     }
 }
示例#6
0
 // before navigate (cancellable)
 bool NavigatingFrom(bool suspending)
 {
     var page = FrameFacade.Content as Page;
     if (page != null)
     {
         var dataContext = page.DataContext as INavigable;
         if (dataContext != null)
         {
             var args = new NavigatingEventArgs
             {
                 PageType = FrameFacade.CurrentPageType,
                 Parameter = FrameFacade.CurrentPageParam,
                 Suspending = suspending,
             };
             dataContext.OnNavigatingFrom(args);
             return !args.Cancel;
         }
     }
     return true;
 }
示例#7
0
 private void FacadeNavigatingCancelEventHandler(object sender, NavigatingCancelEventArgs e)
 {
     var args = new NavigatingEventArgs(e);
     foreach (var handler in _navigatingEventHandlers)
     {
         handler(this, args);
     }
     e.Cancel = args.Cancel;
 }
 public virtual void OnNavigatingFrom(NavigatingEventArgs args) { /* nothing by default */ }
示例#9
0
 public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     args.Cancel = false;
     await Task.CompletedTask;
 }
示例#10
0
        private void FacadeNavigatingCancelEventHandler(object sender, NavigatingCancelEventArgs e)
        {
            DebugWrite();

            object parameter = null;
            try
            {
                parameter = SerializationService.Deserialize(e.Parameter?.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception("Your parameter must be serializable. If it isn't, then use SessionState.", ex);
            }
            var args = new NavigatingEventArgs(e, Content as Page, parameter);
            if (NavigationModeHint != NavigationMode.New)
                args.NavigationMode = NavigationModeHint;
            NavigationModeHint = NavigationMode.New;
            foreach (var handler in _navigatingEventHandlers)
            {
                handler(this, args);
            }
            e.Cancel = args.Cancel;
        }
 public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     //args.Parameter = Recipe;
     //args.Cancel = false;
     SessionState.Add("UpdatedRecipe", Recipe);
     await Task.CompletedTask;
 }
示例#12
0
 public override async void OnNavigatingFrom(NavigatingEventArgs args)
 {
     await ExecuteSaveCommand();
 }
 public override Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     _beaconManagementService.StopAdvertising();
     return base.OnNavigatingFromAsync(args);
 }
 public override void OnNavigatingFrom(NavigatingEventArgs args)
 {
     base.OnNavigatingFrom(args);
 }
示例#15
0
        public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
        {
          

            await base.OnNavigatingFromAsync(args);
        }
示例#16
0
        public override void OnNavigatingFrom(NavigatingEventArgs args)        {

            mediaElement.Source = null;
            base.OnNavigatingFrom(args);
        }
示例#17
0
 public void RaiseNavigating(NavigatingEventArgs e)
 {
     Navigating?.Invoke(this, e);
     // for backwards compat
     FrameFacadeInternal.RaiseNavigating(e);
 }
 public override Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     return base.OnNavigatingFromAsync(args);
 }
示例#19
0
        public async Task<bool> NavingFromCancelsAsync(object viewmodel, NavigationMode mode, Page sourcePage, Type sourceType, object sourceParameter, Page targetPage, Type targetType, object targetParameter, bool suspending)
        {
            Services.NavigationService.NavigationService.DebugWrite();

            if (sourcePage == null)
            {
                return false;
            }
            else if (viewmodel == null)
            {
                return false;
            }
            else if (viewmodel is Classic.INavigatingAwareAsync)
            {
                var deferral = new DeferralManager();
                var navigatingEventArgs = new Classic.NavigatingEventArgs(deferral)
                {
                    Page = sourcePage,
                    PageType = sourcePage?.GetType(),
                    Parameter = sourceParameter,
                    NavigationMode = mode,
                    TargetPageType = targetType,
                    TargetPageParameter = targetParameter,
                    Suspending = suspending,
                };
                try
                {
                    var vm = viewmodel as Classic.INavigatingAwareAsync;
                    await vm?.OnNavigatingFromAsync(navigatingEventArgs);
                    await deferral.WaitForDeferralsAsync();
                }
                catch
                {
                    Debugger.Break();
                }
                return navigatingEventArgs.Cancel;
            }
            else if (viewmodel is Portable.IConfirmNavigationAsync)
            {
                var parameters = new Portable.NavigationParameters();
                parameters.Add("NavigationMode", mode.ToPrismNavigationMode());
                parameters.Add("SourceType", sourceType);
                parameters.Add("SourceParameter", sourceParameter);
                parameters.Add("TargetType", targetType);
                parameters.Add("TargetParameter", targetParameter);
                parameters.Add("Suspending", suspending);
                var vm = viewmodel as Portable.IConfirmNavigationAsync;
                return !await vm?.CanNavigateAsync(parameters);
            }
            else
            {
                return true;
            }
        }
示例#20
0
 private void FacadeNavigatingCancelEventHandler(object sender, NavigatingCancelEventArgs e)
 {
     var args = new NavigatingEventArgs(e, Content as Page);
     if (NavigationModeHint != NavigationMode.New)
         args.NavigationMode = NavigationModeHint;
     NavigationModeHint = NavigationMode.New;
     foreach (var handler in _navigatingEventHandlers)
     {
         handler(this, args);
     }
     e.Cancel = args.Cancel;
 }
 public override Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     args.Cancel = false;
     return Task.CompletedTask;
 }
示例#22
0
        private void FacadeNavigatingCancelEventHandler(object sender, NavigatingCancelEventArgs e)
        {
            DebugWrite();

            var parameter = SerializationService.Deserialize(e.Parameter?.ToString());
            var args = new NavigatingEventArgs(e, Content as Page, parameter);
            if (NavigationModeHint != NavigationMode.New)
                args.NavigationMode = NavigationModeHint;
            NavigationModeHint = NavigationMode.New;
            foreach (var handler in _navigatingEventHandlers)
            {
                handler(this, args);
            }
            e.Cancel = args.Cancel;
        }
 public Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     return Task.CompletedTask;
 }
示例#24
0
 public override Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     _dispatcherTimer.Stop();
     return Task.CompletedTask;
 }
 public override void OnNavigatingFrom(NavigatingEventArgs args)
 {
     args.Cancel = false;
 }
示例#26
0
 public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
 {
     args.Cancel = false;
     // Stops map timer
     GameClient.ToggleUpdateTimer(false);
     GameClient.MapPokemonUpdated -= GameClientOnMapPokemonUpdated;
     await Task.CompletedTask;
 }
示例#27
0
        private async void FacadeNavigatingCancelEventHandler(object sender, NavigatingCancelEventArgs e)
        {
            DebugWrite();

            object parameter = null;
            try
            {
                parameter = SerializationService.Deserialize(e.Parameter?.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception("Your parameter must be serializable. If it isn't, then use SessionState.", ex);
            }
            var deferral = new DeferralManager();
            var args = new NavigatingEventArgs(deferral, e, Content as Page, parameter);
            if (NavigationModeHint != NavigationMode.New)
                args.NavigationMode = NavigationModeHint;
            NavigationModeHint = NavigationMode.New;
            _navigatingEventHandlers.ForEach(x => x(this, args));
            await deferral.WaitForDeferralsAsync();
            e.Cancel = args.Cancel;
        }
        public override Task OnNavigatingFromAsync(NavigatingEventArgs args)
        {
            _watcher.Received -= Watcher_Received;
            foreach (var beacon in BeaconsList)
                beacon.PropertyChanged -= Beacon_PropertyChanged;

            return base.OnNavigatingFromAsync(args);
        }