2017-08-16 20 views
0

INavigationAwareコードを使用して問題が発生しています。私は3ページあります。たとえば、私はそれをpageA、pageBおよびpageCと命名した。ページAは、リストビューであると私は、私はOnNavigatedToを使用してパラメータを取得するページBでOnItemSelectedINavigationAwareの[戻る]ボタンを使用して前のページにパラメータを渡す方法

ページAビューモデル

public void OnItemSelected(Complaint item) 
     { 
      if (item != null) 
      { 
       var param = new NavigationParameters(); 
       param.Add("id", item.Id); 
       mNavigationService.NavigateAsync("pageB", param); 
      } 
     } 

を使用してページBにパラメータを渡します。

ページBビューモデル

public async void OnNavigatedTo(NavigationParameters parameters) 
     { 
      var id = parameters["id"]; 
      Title = string.Format("{0}: {1}", Strings.ComplaintDetail_Title, id); 
      await getComplaintDetail(Convert.ToInt32(id)); 

     } 

ページBから、私は同じように使用してpageCにパラメータを送信します。しかし、今、私はパラメータをpageBに戻すことに問題があります。左上のINavigation Backボタンを使用しているので、パラメータをpageBに戻す方法はわかりません。問題は、選択と更新の目的で、パラメータ(主キー)をすべてのページに渡す必要があることです。私を助けてください。私はどのようにOnNavigatedFromを使用してパラメータを渡すか分からない。

PageCビューモデル

public void OnNavigatedFrom(NavigationParameters parameters) 
     { 

     } 

は、事前にありがとうございます。

+0

サービスの利用を検討しましたか?とにかに、現在のアイテムをすべてのページで知っていなければならない場合は、「グローバルに」利用できるようにすることは、常にそれを渡すことの代わりになる可能性があります。 – Haukinger

+0

グローバルにするには?申し訳ありません、私はまったく初心者です。 – nuyuljana

+0

あなたのすべてのビューモデルで利用可能なサービスを通じて – Haukinger

答えて

1

明白なことは嫌ですが、OnNavigatedFromメソッドのパラメータコレクションに追加しようとしましたか?

public void OnNavigatedFrom(NavigationParameters parameters) 
    { 
     parameters.Add("test", "testValue"); 
    } 
+0

ありがとうBrian。私の問題は解決されました。 – nuyuljana

+0

素晴らしいこの質問に答えてください。 –

関連する問題