複雑なデータオブジェクトがあると想像してください。オブジェクトのさまざまなプロパティを編集するには、ユーザーが複数の画面を使用するのが最適であるほど複雑でした。これは基本的に、構成済みアイテムのショッピングカートです。
したがって、1つの画面でアイテムを追加できます。もう1つは、これらのアイテムに変更を追加できるようにするもので、コストが関連付けられている事前に決定された変更です。3番目の画面では、アイテムのグローバル設定を構成できます。
ご想像のとおり、各画面はまったく同じカートで動作しており、内部のアイテムのさまざまなプロパティと関係を変更するだけです。
そこで、MVVMを使用してアプリケーションを作成しようとしています。さまざまな画面(および画面間のナビゲーション)について話し合っているときに、次の質問にたどり着きました。
MVVMを使用する場合、一般的にアプリケーションの状態をどのように管理しますか?ユーザーが画面を変更するために使用するナビゲーションバーは画面の外側にありますが、ユーザーがそれをクリックすると、ユーザーが1つを非表示にし、もう1つを表示するために使用している一般的な方法は何ですか。
より一般的には、人々はグローバルアプリケーションの状態をどのように処理していますか?ユーザーは一度に1つのカートのみを操作でき、一度にログインできるユーザーは1人だけであり、一度に表示できる画面は1つだけです。これらの重要なプロパティを格納するシングルトンを作成し、ViewModelsがそれらのコピーを保持し、イベントアグリゲーターを介して変更をサブスクライブできるようにするのが最善でしょうか?
お分かりのように、私はこの問題をどこから始めればよいのかほとんどわからないので、どんなアドバイスも歓迎され、喜ばれます。