私は MvvmCross ビュー モデルを試しています。私のアプリでは、同様のレイアウト構造を持つ異なるプラットフォーム間だけでなく、アプリのフォーム ファクターに応じて情報が異なる方法で表示されるアプリケーション間でも共有されます。たとえば、iPad アプリでは顧客リストと選択した顧客の詳細が同じページに表示されますが、iPhone アプリではそれらが異なるページに分割されます。MvvmCross はそのようなシナリオをすべてサポートしているため、これらすべてのアプリケーション間で共通のビュー モデル セットを共有するのは非常に簡単です。
ただし、複数のビュー モデルで同じ詳細を共有すると便利な場合があります。たとえば、さまざまなビューで最近の Twitter メッセージや株価の更新などを表示したり、グローバル ユーザー設定 (ユーザー名、最近のログイン時間など) を表示したりできます。すべてのビュー モデルには、共有アプリの状態にアクセスするためのプロパティ AppState があるため、どのビューでもそのコントロールを AppState にバインドできます。これはデザインタイム モデルでも機能します。
いくつかのプラットフォームでテストしましたが (Windows 以外のプラットフォームはまだ試していません)、期待どおりに動作します。ただし、廃棄/脱水などの生涯シナリオはテストしませんでした。基本的に、シングルトンのプロパティにバインドされたビューの一部があります。ビュー モデルの有効期間に関連する注意事項はありますか?
さらに、そのようなシングルトンの使用が許容される場合は、シングルトン パターンまたは MvvmCross 依存性注入 (MvxResolve) のいずれかを使用できます。技術的には同じになるので、どちらの方法にも利点はありますか?