2016-04-15 5 views
0

私はこのセカンダリページからメインページに戻るようにしています。私はNavigationService.GoBack()を使用しようとしましたが、私はNullReferenceExceptionを得ました。Template10で戻ることはできません

私はビューモデルから何も変更しませんでした。私は何を意図したことはここで

をメインページに戻って移動し、その後、最初の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

null参照例外を投げたコード行はどれですか?ナビゲーションサービスはnullですか? –

+0

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

+0

@GlenThomas私は 'NavigationService.GoBack()'から例外を得ました。 –

答えて

0
  • 異なるページ間を移動するには、Frame.Navigateメソッドを使用します。メインページと呼ばれるXAMLのページへページのナビゲーションのための
  • 例は次のとおりです。詳しい情報については this.Frame.Navigage(typeof(Mainpage));

ドキュメントを見て:Frame.Navigate

名前空間が使用されてSystem.Windows.Controlsと呼ばれています。

関連する問題