1

クロス プラットフォームのモバイル開発には MvvmCross ライブラリを使用します。

チャット リスト (ChatListPageViewModel) を含むページを取得しました。Init() メソッドでコンテナーからチャットを読み込みます。

このページから、新しいチャットをコンテナーに追加するページ (AddChatPageViewModel) に移動できます。

チャットが追加されたら、AddChatPageViewModel で Close(this) を呼び出します。そのため、ChatListPageViewModel に自動的に移動しますが、現時点では Init() メソッドが呼び出されず、データを更新できません。どうすればこれを処理できますか?

4

1 に答える 1

1

Init は、新しいビューモデルを初期化するために予約されています。実際には、既存のものを更新するようには設計されていません。

ただし、次の方法で、探しているタイプのアプリケーション フローを実現できると思います。

  • チャットを追加するときに AddChatViewModel からメッセージを送信する
  • またはカスタム OnNavigatedTo、ViewDidAppear、OnResume ハンドラーを作成し、これらを使用してチャット ビュー モデルでカスタム メソッドを呼び出す

最初のスキームの一例は、CollectABull N+1 サンプル ( https://github.com/slodge/NPlus1DaysOfMvvmCross/tree/master/N-13-CollectABull-Part2 ) にあります。コレクション サービスが変更されると、許可するメッセージがブロードキャストされます。更新するサブスクライブした ViewModels -ウォークスルー ビデオについては、 http://mvvmcross.wordpress.comを参照してください。

于 2013-07-11T05:58:21.390 に答える