2012-05-11 9 views
0

まず、これがMVPを試した最初の試みであるとお伝えします。ビューからモデルを完全に切り離したいと思っているので、私はパッシブビューアプローチに向いています。MVPを使用して異なるビューを動的に追加

私は私のアプリケーションがカスタムされている4見解を持っているとしている他の人の間で、以下の記事

デレク・グリア
http://aspiringcraftsman.com/2007/08/25/interactive-application-architecture/

トッド・スナイダー
http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx

を読み取ることにより、MVPにまで読んだ

プレゼンターと対話するためにそれぞれが異なるインターフェースを実装するコントロール。これは3つのビューで問題にはなりません。なぜなら、コントロールは静的で決して変更されないからです。

私の問題は、私はイベントに基づいて表示されている制御/ビューを変更する必要がある第四ビューに例えばビュー1は誰できる人のリストであると言うことができますので、ビュー1から

をトリガーどこに沿って来て

従業員か顧客のいずれかから来てください。今選択された人に応じて、選択した人のタイプに応じて異なるパラメータを変更することができます。問題は、ビュー4が選択されたものに基づいて編集コントロールを動的に変更する必要があることです。プロパティは異なるだけでなく、それらのプロパティもどのように編集されるのかを覚えておいてください。また、各編集コントロールは、プロパティ変更のために異なるイベントを発生させます。

従業員または顧客が選択されているかどうかに応じて、異なるViewインターフェイスを実装する別のエディタがある場合、モデルとのやりとりを管理する方法をPresenterがどのように知っていますか?

わかりやすかったです。どんな助けでも大歓迎です。私はすべてを検索しており、すべての例は、ビューとプレゼンターの間の具体的な関係を示していますが、私は非常に柔軟性が必要です。

ここでの目標は、第4ビューの編集コントロールを非常に柔軟に保つことです。たとえば、編集コントロールを追加することができます。エイリアンや犬などのビューや、View1に追加するその他のアイテムを選択できます。

おかげ

答えて

0

あなたは選択イベントをリッスンし、選択された内容に基づいて異なるMVPトライアドをインスタンス化することによって編集コントロールを変更し、トップレベルのプレゼンターを作成することができます。通常、MVPではプレゼンターがすべての構築/依存関係を管理します。

0

私は個人的には「マスタープレゼンター」を持っているのが好きではありません。私は複合プレゼンターを作成します:ビューにはいくつかのビューのうちの1つを含めることができるので、特定の子プレゼンターにコマンド(メッセージ、イベントなど)を送信するマスタービューのプレゼンターを作成します(プレゼンターを所有しているビューを公開しません)。

物事を複雑にしないでください...責任ごとに異なるビューを使用してください。ビューは安いです。

関連する問題