2009-06-15 7 views
1

モデルビュープレゼンターのパターンを調べています。これまでのところ、記事、ウェブキャスト、ポッドキャストなどはほとんど見ていますが、読んだり聞いたりしたことは、テキストボックスから簡単なタイプを設定したり取り込んだりする傾向があり、どう対処するか分かりませんより複雑なUIコントロールを使用します。モデルビュープレゼンター - より複雑なUIコントロールの処理

たとえば、CheckedListBoxがあるとします。このCLBでは、使用可能なすべての選択肢と、選択された選択肢を表示したい(FavouriteIceCreamFlavoursリストでFriendクラスを想像する)。私はリストボックスを簡単に埋めることができますが、どのようにして選択するかを設定します(この友人の後続の編集で)。また、これらの変更を元のFriendオブジェクトにどのように戻すことができますか?

もう1つの候補はTreeViewです。テレビのノードを右クリックすると、そのノードを削除できるようになります。そのアクションをPresenterに返信する最良の方法は何ですか?

乾杯、

レニー。

(PS私はC#3.5/WinFormsの環境で開発しています)

+0

プレゼンテーションモデルの意味でプレゼンターを指しているのか、受動/監督プレゼンターですか? – micahtan

+0

パッシブ/監督ソート。 –

答えて

0

は、私もこのMVPの事だけに新たなんです。しかし、私は私がやることに行きます。私はtreeviewでやっていることは、単にUIイベントであるので、ビュー内の削除を処理することです。しかし、何らかのデータベースロジックや何かがあれば、これを行うことができます。

私が持っているでしょう:

プレゼンターインタフェース:

Interface IPresenter 
{ 
    bool DeleteItem(string itemName); 
} 

ビュークラス:

class View : IView 
{ 
    IPresenter presenter = new Presenter(this); 

    void DeleteButtonClick(//SomeEventArgs) 
    { 
     bool vaild = this.presentor.DeleteItem(//Get the selected item); 
     if (vaild) 
     { //Delete the item from the tree view } 
    } 
} 

プレゼンタークラス:

class Presenter : IPresenter 
{ 
    public bool DeleteItem(string itemName) 
    { 
     // Check for valid delete. 
     return true or false 
    } 
} 

うまくいけばうまくいくはずです。

関連する問題