コード例 #1
0
        public async Task <bool> NavigatingToAsync(object ViewModel, NavigationMode NavigationMode, bool Resuming, INavigationInfo from, INavigationInfo to, INavigationService nav)
        {
            this.Log($"{ViewModel}");

            if (ViewModel is T10v2.INavigatingToAwareAsync vm && vm != null)
            {
                var parameters = new NavigatingToParameters(NavigationMode.ToPortableNavigationMode(), from, to, Resuming, SessionState);
                return(await vm.OnNavigatingToAsync(parameters));
            }
コード例 #2
0
        private async Task CallPortableOnNavigatedTo(object viewmodel, NavigationMode mode, Type sourceType, object sourceParameter, Page targetPage, Type targetType, object targetParameter)
        {
            var parameters = new NavigatedToParameters();

            parameters.PageState       = PageState(targetPage);
            parameters.NavigationMode  = mode.ToPortableNavigationMode();
            parameters.SourceType      = sourceType;
            parameters.SourceParameter = sourceParameter;
            parameters.TargetType      = targetType;
            parameters.TargetParameter = targetParameter;
            var vm = viewmodel as CrossPlat.INavigatedToAwareAsync;
            await vm?.OnNavigatedToAsync(parameters);
        }
コード例 #3
0
 private static async Task CallPortableNavigatingFromAsync(object viewmodel, NavigationMode mode, Type sourceType, object sourceParameter, Type targetType, object targetParameter, bool suspending)
 {
     var parameters = new NavigatingFromParameters
     {
         NavigationMode  = mode.ToPortableNavigationMode(),
         SourceType      = sourceType,
         SourceParameter = sourceParameter,
         TargetType      = targetType,
         TargetParameter = targetParameter,
         Suspending      = suspending,
     };
     var vm = viewmodel as Portable.Navigation.INavigatingFromAwareAsync;
     await vm?.OnNavigatingFromAsync(parameters);
 }
コード例 #4
0
        private static async Task <bool> CallPortableCanNavigateAsync(object viewmodel, NavigationMode mode, Type sourceType, object sourceParameter, Type targetType, object targetParameter, bool suspending)
        {
            var parameters = new ConfirmNavigationParameters
            {
                NavigationMode  = mode.ToPortableNavigationMode(),
                SourceType      = sourceType,
                SourceParameter = sourceParameter,
                TargetType      = targetType,
                TargetParameter = targetParameter,
                Suspending      = suspending,
            };
            var vm          = viewmodel as Portable.Navigation.IConfirmNavigationAsync;
            var canNavigate = await vm?.CanNavigateAsync(parameters);

            return(canNavigate);
        }