2016-11-13 5 views
0

まず私は、メインページからメニュー2に、ボタンの内容を渡します渡す要素

private void Button2Click(object sender, RoutedEventArgs args) 
    { 
     // Create PassData object 
     PassData passData = new PassData(); 

     // Set the InitializeData property from the button's content 
     passData.Data = firstElement.Content; 

     // Pass that object to Navigate 
     this.Frame.Navigate(typeof(Menu2), passData); 

    } 

それから私はメニュー2ページ内のデータを取得:

// pulling data from first page selection 
    protected override void OnNavigatedTo(NavigationEventArgs args) 
    { 
     // Get the object passed as the second argument to Navigate 
     PassData passData = args.Parameter as PassData; 

     // Use that to initilize the button 
     firstElement.Content = passData.Data; 

     base.OnNavigatedTo(args); 
    } 

このポイントボタンのコンテンツであります問題なく通過しました。

その後、私は再び戻ってメインページにそのデータを渡したい:

メニュー2コード:

private void Button1Click(object sender, RoutedEventArgs args) 
    { 
     // Create PassData object 
     PassData passData = new PassData(); 

     // Set the InitializeData property from the button's content 
     passData.Data = firstElement.Content; 

     // Pass that object to Navigate 
     this.Frame.Navigate(typeof(MainPage), passData); 

    } 

と私はメインページ内のデータを取得しよう:

// pulling data from Menu2's button 
    protected override void OnNavigatedTo(NavigationEventArgs args) 
    { 
     // Get the object passed as the second argument to Navigate 
     PassData passData = args.Parameter as PassData; 

     // Use that to initilize the button 
     firstElement.Content = passData.Data; 

     base.OnNavigatedTo(args); 
    } 

この時点で、Iメインページの行にエラーが表示されます。

firstElement.Content = passData.Data; 

エラー:

Null Reference Exception, Object reference not set to an instance of an object 

私は間違っていますか?

+1

firstElementまたはpassDataオブジェクトのいずれかがnullです。 – lukai

+0

しかしどうして?既にメインページから渡されているので、データを割り当ててはいけませんか? – paddy

+0

それはpassDataがnullだと言います。しかし、それはfirstElementにあったものを持っているはずです。内容は正しいのですか? – paddy

答えて

0

最初のページはどれですか?

最初にロードすると、passDataはnullになります。

UWPで作業していると思いますが、MainPageにナビゲートすると、ファイルApp.csに引数としてPassData()を作成して渡す必要があります。

+0

クラスを使用してPassDataを別のcsファイルに渡します。最初に、passDataがnullのMainPageをロードします。次に、Menu2に移動し、MainPageのfirstElement.ContentがPassDataに割り当てられます。それはMenu2で取り出されます。 Menu2では、そのページ内のfirstElement.ContentにPassDataコンテンツが割り当てられているので、同じデータをMainPageに戻したいと思っていました。この時点で、PassDataはfirstElement.Contentの値を失うようです。 – paddy

+0

MainPageにデータを戻すために別のPassData()が必要ですか? – paddy

+0

@paddy App.csを貼り付けることはできますか? – Cologler

関連する問題