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)); }
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); }
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); }
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); }