2013-05-13 3 views
5

私は、WPFとMono for Androidの実装をサポートするためにMvvmCrossを使用するためにリファクタリングしたいWPF MVVMアプリケーションを用意しています。MvvmCrossのコンポジットビュー

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

各:

私たちのアプリケーションのビューはで構成されていこれらのリージョンのうちの1つはメインアプリケーションウィンドウ上のUserControlであり、UiServiceは各リージョンのビューを単純に交換します。ポップアップウィンドウの場合は、UiServiceへの呼び出しを表示または非表示にすると、メインウィンドウ上のUserControlだけで可視性が変更されます。また、UiServiceは、状態情報がビューモデルに渡されて表示されるようにするコンテキストパラメータを受け入れます。

メインビューは、通常、いくつかの子ビューの複合です。これらの場合、メインビューモデルはプロパティとして公開される子ビューモデルを作成します。メインビューは、これらのプロパティを子ビューのデータコンテキストとして設定します。

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

答えて

6

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

このスタイルのビューはモバイルアプリのデフォルトスタイルではありません。ほとんどのモバイルアプリはページベースです。

しかし、複合ビューはタブレットアプリでますます一般的になり、モバイルアプリでも例外があります。タブ、パノラマ、フライアウトなど

さまざまな種類の表示を可能にするため、各MvvmCross UIプラットフォームにはpresenterがあり、必要に応じてカスタマイズできます。

このpresenterクラスでは、ViewModelsとビューをどのように表示するかを選択できます。また、それは単なるC#クラスなので、パネル、フライアウト、タブ、組み込みナビゲーションなどの複雑なパターンを構築できるように、この責任を他の多くのオブジェクトに委譲することができます。

あなたが任意の上の2つのviewmodelsを表示することができますことを覚えておいてくださいhttps://github.com/slodge/MvvmCross-Tutorials/tree/master/Sample%20-%20TwitterSearch

+0

ジャストノート... Twitter APIはサンプルで使用されています - TwitterSearch 'Twitter REST API v1はもはやアクティブではありません。 API v1.1に移行してください。 https:// dev.twitter.com/docs/api/1.1/overview.' – Syska

2

からhttps://speakerdeck.com/cirrious/presenters-in-mvvmcross

WPFとiOS TwitterSearch例は、この上で開始するには良い場所かもしれない - この上の情報、いくつかのサンプルへのリンクを含め、このスライドデッキをご覧ください与えられたコマンド。

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

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

これは簡単なことですが(それはありますが)それを理解するまでにはしばらく時間がかかりました。 StuartのTwitterSearchチュートリアルで解説されている解決策

2

カスタムプレゼンターを使用して複数のViewModelをUserControlsと同じページに表示できるようにするプラグインを作成しました。また、通常のビューナビゲーションを許可するので、あなたは、WPF、Andoid錠、WindowsストアやiPad上に複合ビューを持つように正確なビューモデルを使用することができ、モバイルデバイス上のページナビゲーション:

https://github.com/ChristianRuiz/MvvmCross-ControlsNavigation

関連する問題