У меня странная проблема с получением нулевого исключения.Я создал класс, который реализует интерфейс ICommand, у меня есть два метода.
public void Execute(object parameter)
{
NavigateAsync();
}
private async void NavigateAsync()
{
await App.MainNavigation.PushAsync(new Pages.SettingsPage());
}
Когда функция NavigateAsync () работает, моя MainNavigation всегда равна нулю, даже если я вижу, что параметр внутри Execute установлен.
В моем файле App.xaml.cs я создал публичную статическую INavigation MainNavigation {get;задавать;}
public partial class App : Application
{
public static ViewModels.MainViewModel ViewModel { get; set; }
public static INavigation MainNavigation { get; set; }
public App ()
{
InitializeComponent();
MainPage = new NavigationPage(new Paperboy.MainPage());
}
protected override void OnStart ()
{
// Handle when your app starts
}
protected override void OnSleep ()
{
// Handle when your app sleeps
}
protected override void OnResume ()
{
// Handle when your app resumes
}
}
Se при нажатии значка я могу видеть, что команда выполнена, но App.MainNavigation внутри NavigateAsync () в null.Поэтому команда не выполняет PushAsync для SettingsPage.