私はそれぞれが独自の視点を持っている2つのビューモデルを持っています。何らかの形のviewmodel-viewmodel通信を使用する代わりに、2つのビューモデルを1つに結合するのはどうですか?
第一ビューモデルは、ビューによって表示される3つの性質を有する:
PolicyProvider
PolicyType
PolicyNumber
第2のビューモデルは、そのビューで表示されている1つだけのプロパティがあります
TypeOfInvestmentFund
を1がありますPolicyType
とTypeOfInvestmentFund.
の間の多くの関係
これらのビューモデルとビューの両方がユーザーとして表示されています親フォーム内のコントロール。
TypeOfInvestmentFund
の利用可能な選択肢は、で選択されたに依存します。これを組み合わせることができ、これらの2つのビューモデルのように感じている私に
、なぜなら
a)は、彼らが明確に多少のコントロールが両方とても小さくてシンプルな
B)を結合されているそれらを結合しても、複雑で管理不能なオブジェクトは作成されません。
ただし、このデータはかなり無関係です。ユーザは依然としてフォームの別々の部分にデータを表示したい(したがって別々のビューに配置する)ようには十分ではありません。
私は個人的にこれらの2ビューモデルを組み合わせ、2つの別々のビューがそれの異なる部分を表示するためにそれに接続有する次いで、2つのオブジェクト間の通信を管理するはるかに少ないオーバーヘッドであることを感じます。
しかし、私はこれをやったことはありませんが、おそらくそれほど管理することはできません。これらの2つのビューモデルを別々に保つことは、懸念の分離を維持するでしょう。さらに、この情報を必要とする開発中に他のコントロールが表示された場合、その情報を吸収し続けることはできないため、この段階でイベントアグリゲータを開始すると、イベントが既に購読可能なのでリワークが防止されます。ビューモデルを組み合わせるだけで、まだまだ仕事が増えています。
これら2つのうちどれが「より正しい」ですか?私はその判断を求めることを理解していますが、私は決定できませんので、私は私の心を補うための意見を探しています。
ありがとうございました。残念ながらパフォーマンスはここでは唯一の結論ではありません。私はこのプロジェクトの他の人と話をしました。彼女はこのアプローチの問題は拡張性であると言いました。私は、問題のポップアップが増えればビューモデルを統合し続けることはできません。これまでのところ、すべてのビューにはビューモデルがあり、誰かが後でそのコードを見ると混乱する可能性があるので、彼女はそれを壊したくありません。私はイベントアグリゲータを入れなければならないと思う。 –