0

私は個人的なプロジェクトに取り組んでいます。以前の投稿(POSアプリケーションアーキテクチャ)から始めました。

使用しようとしています-リポジトリ-サービスとモーダルの表示-アプローチの表示

添付の画像ファイルをご覧ください。ほとんどのウィンドウには複数のビューがあります。

私の質問は次のとおりです。

  1. 窓を見て、私のプロジェクトはCAG(Prism)の良い候補だと思いますか、それともやり過ぎだと思いますか?
  2. POPUpモーダルウィンドウを取得して、その親のview-region-moduleからそれらと通信することはできますか?
  3. Prismの複数のウィンドウ(複数のシェルを作成できると仮定)、それらの間の通信は複雑ですか
  4. サブビューをプロパティとして使用する複雑なビューの作成については、SOをお読みください。これは良いアプローチですか、それともコードが多すぎますか

いくつかのパターンを適用することを検討すればするほど、混乱します

同様の問題を抱えている方もいらっしゃると思いますが、あなたのアプローチで解決できるかもしれません。

ありがとう3月

http://www.flickr.com/photos/themarworld/3820178039/ http://www.flickr.com/photos/themarworld/3820178039/

4

2 に答える 2

1

スクリーンショットは見えませんが、ここで簡単な指示を与えることができます。私は最近、マルチターゲット (WPF/Silverlight) 複合アプリのシェルをセットアップしており、ライブラリを学習しながら進めています。

  1. 「ほとんどのウィンドウには複数のビューがあります。」-- これだけでも、複合アプリケーション ライブラリにあるものを気に入っていただけると思います。そして、MVVM は CAL に最適なパターンです。StockTrader リファレンス アプリケーションでは、PresentationModel という用語を使用していますが、これは本質的に MVVM と同じものです。

  2. ポップアップ モーダルは、WPF と SL の両方で (Toolkit 拡張の ChildWindow コントロールを介して) うまく機能します。ビューとサービスを注入することにより、通常のリージョンと同じ方法でそれらと通信します。これについて私が特に素晴らしいと思ったのは、ポップアップで領域を定義し、アプリ (モジュール) がロードされたときにビューを登録し (領域自体がまだロードされていなくても)、領域がポップアップしたときにその時点で正しいビューが挿入されます。言い換えれば、領域が表示されるまでビューの注入を延期することに関与する必要はありません。

  3. これを試したことはありません - コメントできません。

  4. 「サブビュー」についてはわかりませんが、リージョン内のリージョンは確かに可能です。

于 2009-08-15T16:21:33.050 に答える
1

Wayne は #1 と #2 に適切な答えを持っています... 私は #3 と #4 を取得します。

3) 同じビュー モデルを共有しないビュー間の通信は、Prism の EventAggregator を通じて行われます。メッセージの非常に使いやすいパブリッシャー サブスクライバー モデルです。これを理解するのに問題はありません。

4) ビューモデルのプロパティとしてビューを持つという考えは好きではありません。関心の分離の問題です。ViewModels がインターフェースに依存しないように撮影しています。これは、ビューモデルに漏れるインターフェースが多すぎることを意味します。2つの許容可能な代替案は次のとおりです

  • ViewModel のプロパティとしてサブ ViewModels。ViewModel で UI を指定せずに、DataTemplates を使用して外観を提供できます。
  • サブ地域。これは完全に許容範囲です。RegionManager スコープを追跡しようとすることになるため、UI によっては扱いにくい場合がありますが、実行可能です。

HTH、アンダーソン

于 2009-08-18T03:53:11.193 に答える