8

MvvmCross を使用して WPF と Mono for Android 実装をサポートするようにリファクタリングしたい WPF MVVM アプリケーションがあります。

アプリケーションのビューは次のもので構成されます。

  • 常に表示されるツールバー
  • ナビゲーション バー領域
  • メインビュー領域
  • ポップアップ ウィンドウ領域

これらの各領域はメイン アプリケーション ウィンドウの UserControl であり、UiService は各領域のビューを単純に交換します。ポップアップ ウィンドウの場合、UiService への Show または Hide 呼び出しで可視性が変化するのは、メイン ウィンドウの単なる UserControl です。UiService は、状態情報をビュー モデルに渡して表示できるようにするコンテキスト パラメーターも受け入れます。

メイン ビューは、通常、複数の子ビューを組み合わせたものです。このような場合、メイン ビュー モデルは、プロパティとして公開される子ビュー モデルを作成します。メイン ビューは、これらのプロパティを子ビューのデータ コンテキストとして設定します。

MvvmCross は確かにこのスタイルの複合ビューをサポートすると思いますが、そのような例は見つかりませんでした。関連する MvvmCross の例はありますか? MvvmCross で実装するための推奨されるアプローチは何ですか?

4

3 に答える 3

3

任意のコマンドで 2 つの ViewModel を表示できることに注意してください。

たとえば、ユーザーがログイン フォームを完了し、複合 UI をロードする場合は、ナビゲーション バー ビュー モデルとメイン ビュー モデルを表示します。

その後、カスタム プレゼンターを作成して、対応するビューのレイアウトを渡すことができます。

これは簡単に聞こえますが (実際にそうです)、理解するのに時間がかかりました。Stuart が言及しているように、TwitterSearch チュートリアルで示されているソリューション

于 2013-05-17T19:55:50.610 に答える