2016-09-15 6 views
0

メインページにボタンを作成しています。私がそれをクリックすると、私はエディタを受け取ります。何らかのテキストを入力した後、savePostボタンをクリックします。その後、サーバーに保存してメインページに戻りますが、私の壁に新しい投稿はありません。新しい投稿を見るには、そのページを更新する必要があります。 savePostボタンをクリックした後、メインページに新しい投稿を含む前のページを受け取るコードを書くにはどうすればいいですか?最新のデータに更新する前のページに戻るXamarinフォーム

 Button savePost = new Button {Text = "Save post"}; 
     stackLayout.Children.Add(savePost); 
     savePost.Clicked += (sender, args) => 
     { 
      var restService = new RestServiceImpl(UserService.User.AccessToken); 
      PostView post = new PostView 
      { 
       Text = textEditor.Text, 
      }; 
      restService.CreatePost(post); 
      Navigation.PopAsync(); 
     }; 

答えて

2

いくつかの方法があります。最も単純なのは、ページのOnAppearingイベントに何らかのメカニズムを実装してそこにリロードすることだけです。リロードを検出するには、リロードするのではなく、リロードを検出する方法が必要です。これは、 'restService.CreatePost(post);'の後にtrueに設定されている場合など、ライン。

このようなことは、私には他の方法でもたらされます。いくつかの種類のMVVMフレームワーク(例えば、FreshMvvmを見てください)を使用しているときに、PageModelがポップされたときにいくつかのコードを実行できます。したがって、必要な場合にリロードして検出するタイミングをより細かく制御できます。

全く別の方法は、MessagingCenterを使用することです。再ロードが必要なとき(いつでもどこからでも)メッセージを送信して、再ロードが必要なページにそれを予約させ、正しいメッセージが受信されるたびに再ロードコードを実行させることができます。

すべての要件とコード構造によって異なります。

+0

助けていただきありがとうございます:) –

+0

もしあなたが(結局のところ)助けてくれたら、それを答えとしてマークしてください! –

+0

messagecenterで私はライブアップデートを実装しています、ありがとう.... –

関連する問題