I have been through multiple articles on navigation and passing parameters with prism. However, nothing I try will make the OnNavigatingTo method fire when changing pages.
My goal is to pass a simple parameter from the LoginPage to the MultifactorAuthPage.
If I try and get the parameter in the OnNavigatingTo method thee app will not change pages for some reason. It will hit the breakpoint and just stay on the LoginPage.
I'm currently using Xamarin Forms 3.6 with Prism 7.1.
Here's some of my code:
LoginPageViewModel
public LoginPageViewModel(INavigationService navigationService, IPushNotification pushNotification)
{
_navigationService = navigationService;
LoginCommand = new DelegateCommand(BeginLoginAsync);
}
private async void BeginLoginAsync()
{
await _navigationService.NavigateAsync("MultifactorAuthPage", new NavigationParameters("PhoneNumber=9999999999"));
}
MultifactorAuthViewModel
public class MultifactorAuthPageViewModel : ViewModelBase, INavigationAware
{
INavigationService _navigationService;
public MultifactorAuthPageViewModel(INavigationService navigationService)
{
_navigationService = navigationService;
}
private override void OnNavigatingTo(INavigationParameters parameters)
{
}
private override void OnNavigatedFrom(INavigationParameters parameters)
{
}
private override void OnNavigatedTo(INavigationParameters parameters)
{
PhoneNumber = Convert.ToInt32(parameters["PhoneNumber"]);
}
}
ViewModelBase
public class ViewModelBase : BindableBase, INavigationAware
{
public ViewModelBase()
{
}
public virtual void OnNavigatedFrom(INavigationParameters parameters)
{
}
public virtual void OnNavigatedTo(INavigationParameters parameters)
{
}
public virtual void OnNavigatingTo(INavigationParameters parameters)
{
}
}
Some of the resources I've tried:
https://prismlibrary.github.io/docs/xamarin-forms/navigation/passing-parameters.html https://xamgirl.com/prism-in-xamarin-forms-step-by-step-part-2/ https://github.com/PrismLibrary/Prism-Samples-Forms/tree/master/ContosoCookbook