3

私は最近、パッシブ ビュー アプローチで MVP パターンに切り替えました。TextBoxes にマップされた文字列、DropDownLists にマップされた IDictionary、一部のグリッドにマップされた IEnumerable、リピーターなど、ビュー インターフェイスが基本的な clr 型のみを公開する場合、非常に快適に作業できます。

ただし、この最後のアプローチは、それらのグリッドから 1 つの列のみを気にする場合にのみ機能します。グリッドの複数行のコンテンツを IView 内にマップするにはどうすればよいですか? 今のところ、2 つの解決策が頭に浮かびますが、どちらも素晴らしいものではありません。

  1. グリッドのコンテンツ用の DTO を作成し、IView で IEnumerable を公開するか、または
  2. IView のように、IEnumerable または単に「グリッド」を公開します。

最初の解決策は、監視コントローラー パターンに近づきながらパッシブ ビューのルールを破っているように見え、2 番目の解決策は MVP パターン全体をまったく破っています。これをどのように処理しますか?

ありがとう、ウカシュ

4

1 に答える 1

3

MVP を使用すると、このような場合を除いて、Web フォームの開発がはるかに簡単になります。ただし、TDD を使用して、IView が実際にデータのグリッドを必要としていることを確認した場合、問題が何であるかはわかりません。

次のようなことをしようとしていると思います:

public interface IView
{
 DataTable DataSource {get; set;}
}

public class View : IView {

private GridView _datasource;
public DataSource 
{
  get { return _datasource; }
  set 
  { 
    _datasource = value; 
    _datasource.DataBind(); 
  }
}

MVP パターンと一緒に使用すると、この小さなパターンが非常に役立つことがわかります。

于 2008-09-30T14:39:44.013 に答える