0

まず最初に、これがMVPを試す最初の試みであると言わせてください。ビューをモデルから完全に分離したいので、パッシブビューアプローチを使用します。

私はMVPについて、とりわけ次の記事を読んで読みました。

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

Todd Snyder
http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx

私のアプリケーションには、プレゼンターと対話するための異なるインターフェイスをそれぞれ実装するカスタムコントロールである4つのビューがあります。コントロールは静的で変更されないため、これは3つのビューでは問題になりません。

私の問題は、4番目のビューで、ビュー1からトリガーされたイベントに基づいて表示されるコントロール/ビューを変更する必要がある場合に発生します。

たとえば、ビュー1は、従業員または顧客のいずれかからの可能性がある人々のリストであるとします。これで、選択した人に応じて、選択した人のタイプに応じてさまざまなパラメータを変更できます。問題は、View 4が、選択された内容に基づいて編集コントロールを動的に変更する必要があることです。プロパティが異なるだけでなく、編集方法も異なることに注意してください。また、各編集コントロールは、プロパティの変更に対して異なるイベントを発生させます。

では、従業員と顧客のどちらが選択されているかに応じて、異なるビューインターフェイスを実装する別のエディターがある場合、プレゼンターはモデルとの対話を管理する方法をどのように知るのでしょうか。

それが明確だったと思います。どんな助けでも大歓迎です。私はあちこちを検索しましたが、すべての例はビューとプレゼンターの具体的な関係を示していますが、私のものは非常に柔軟である必要があります。

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

ありがとう

4

2 に答える 2

0

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

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

于 2012-05-11T20:43:19.033 に答える
0

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

于 2012-05-11T20:30:46.783 に答える