无法导航回Template10

问题描述:

我想从这个辅助页面导航回到我的MainPage。我试图使用NavigationService.GoBack(),但我得到了NullReferenceException无法导航回Template10

我没有改变viewmodel中的任何东西。我打算做的是先保存用户输入的SQLite,然后再返回炫魅广东

这里是我的代码DetailPage.xaml.cs

private SQLiteService database = new SQLiteService(); 
    DetailPageViewModel vm = new DetailPageViewModel(); 

    public DetailPage() 
    { 
     InitializeComponent(); 
     NavigationCacheMode = NavigationCacheMode.Disabled; 
    } 

    private void yesButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) 
    {    
     var _name = Name.Text; 
     var _uptake = UptakeTime.SelectedIndex + 1; // database index Morning start at 1 
     var _intake = int.Parse(Intake.Text); 

     vm.ProcessData(_name, _intake, _uptake); 
    } 

这里是DetailPageViewModel.cs

SQLiteService database = new SQLiteService(); 

    public DetailPageViewModel() 
    { 
     if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) 
     { 
      Value = "Designtime value"; 
     } 
    } 

    private string _Value = "Default"; 
    public string Value { get { return _Value; } set { Set(ref _Value, value); } } 

    public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state) 
    { 
     Value = (state.ContainsKey(nameof(Value))) ? state[nameof(Value)]?.ToString() : parameter?.ToString(); 
     await Task.CompletedTask; 
    } 

    public override async Task OnNavigatedFromAsync(IDictionary<string, object> pageState, bool suspending) 
    { 
     if (suspending) 
     { 
      pageState[nameof(Value)] = Value; 
     } 
     await Task.CompletedTask; 
    } 

    public override async Task OnNavigatingFromAsync(NavigatingEventArgs args) 
    { 
     args.Cancel = false; 
     await Task.CompletedTask; 
    } 

    public void GotoMainPage() => 
     NavigationService.GoBack();  

    public void ProcessData(string _name, int _type, int _uptake) 
    { 
     database.AddNewItem(_name, _uptake, _type); 
     GotoMainPage(); 
    } 

附注:我试图使用vm.GotoMainPage()Detail.xaml.cs访问GotoMainPage,但它仍然返回异常

+0

哪行代码引发空引用异常?导航服务是否为空? –

+0

this.Frame.Navigage(typeof(Mainpage)); –

+0

@GlenThomas我从'NavigationService.GoBack()' –

  • 要在不同页面之间导航,请使用Frame.Navigate方法。
  • 的页面导航称为网主页一个XAML页面的一个例子是: this.Frame.Navigage(typeof(Mainpage));

欲了解更多信息请查看文档:Frame.Navigate

正在使用的命名空间被称为System.Windows.Controls