Outlookで使用されているようなナビゲーションペインに関する簡単な質問。MVVMでは、他のビュー、ViewModelまたはViewを表示するのは誰ですか?
MVVMでは、他のビュー、ViewModel、またはViewを表示するのは誰ですか?
Viewイベントが他のビューの呼び出しを処理できるとき、ViewModelにそのコードを入れるのは馬鹿馬鹿しいようです。 ViewModelは、必要に応じてナビゲーション項目を有効/無効にし、表示/非表示を切り替えます。
Outlookで使用されているようなナビゲーションペインに関する簡単な質問。MVVMでは、他のビュー、ViewModelまたはViewを表示するのは誰ですか?
MVVMでは、他のビュー、ViewModel、またはViewを表示するのは誰ですか?
Viewイベントが他のビューの呼び出しを処理できるとき、ViewModelにそのコードを入れるのは馬鹿馬鹿しいようです。 ViewModelは、必要に応じてナビゲーション項目を有効/無効にし、表示/非表示を切り替えます。
ViewModelはビューの状態を担当します。ユーザーが実行するアクションがビューの状態を変更する場合は、そのアクションのコードがビュー・モデルに属します。
私はデータバインディングのためにMVVMパターンが好きですが、私はデータバインディングが好きです。なぜなら、私のコードの単体テストを簡単にできるようにコードを構造化できるからです。その構造の大きな部分は、ビューステートをクラスの1つのセットに入れ、モデルステートを別のセットに入れます。
MVVMを実装しようとする人は何度も、実際にはデータバインディングの目的でのみモデルビューの関係を実装していると思います。抽象概念を維持する理由がないため、明確なメリットを提供できないため、これは問題ありません。
あなたの質問に対する答えは、あなたのビューモデルで達成しようとしていることですか?
データバインディング?あなたがそれが好きならどこでもコードを入れてください。
テスト容易性?心配の分離を提供する抽象化?純粋で見物荷物がないモデルですか?
次に、ビューモデルに配置します。
私はすべてのビューに対してViewModelを持っている傾向があります。おそらくモデルもそうです。情報を他のビューに渡す場合は、ViewModelを使用して実際に行う必要があります。そうでなければ、ビューを使用してナビゲートするだけで簡単に方法を得ることができます。これが欲しいと思っています:)
を助けMVVM
希望でエレガントなナビゲーションを作成する方法のアプローチを説明されていますあなたはタブコントロールを使用することができます。タブコントロールは、1つのビューモデルですべて実行できます。 – TMan
私は3つのグループを持つナビゲーションコントロールを継承しました。各グループは別々に実行されます。 1つは混乱し、ビューとビューの両方のモデルが混在していて、ワームの可能性があります。 1つはビューモデルを持たず、もう1つはビューモデルのすべてを実行します。私はデータバインディングが欲しかったが、 "混乱"はあまりにも悪いです。テスト容易性は目標ではありません。この時点で、ちょっとした一貫性を作りたいと思っています。 – AMissico
最初の段落から、Viewが責任を負っているようです。私が "Outlook"ナビゲーションを持っている場合、ビューステートはありません。 – AMissico
@AMissico - "Outlook"ナビゲーションが何を意味するのか分かりませんが、ユーザーが何かをクリックしてアプリケーションを閉じて再度開いても、まったく同じに見えない場合は、ビューの状態があります。このアクションをテストする場合は、ビューの状態があります。 –