2012-04-10 8 views
1

これはMVVMコンセプトの正しい解釈ですか?WPVMでのMVVMコンセプトの解釈(プレゼンターとの関係)

  • DataTemplates - >表示
  • のDependencyObject(コントロール、リストビューなど) - > ViewModelに
  • のDataContext - >モデル

私は自分のViewModelを作成した場合、それが実際に取って代わるだろう明示的なテンプレートを必要としますか?

ViewModelの「モデル」という言葉は、実際のモデル(DomainModelなど)に言及していませんか?

私はプレゼンターも追加します。プレゼンターは、ユーティリティークラスとして表示され、プロパティーなどをビューに公開します。 ViewModelはトップダウン表現(ビューのモデル)であり、PresenterはModelView、つまりボトムアップ表現(モデルのビュー)であると言えますか?私はこれまで以上に変更する必要がありますその場合

  • を...
  • のDataContext - >プレゼンター
  • プレゼンター - >モデル

そして、私は「wouldn一般的に私のカスタムプレゼンテーションラッパーを作成するためにDependencyObjectから派生しますが、私のモデルのビューではなくコントロールのようなビューのカスタムジェネリックモデルを作成するだけですか?

答えて

0

通常MVVMがこのように解釈するためのものです:

表示 - >コントロール、DataTemplatesなど
モデル - >あなたの実際のデータモデル(データベース、または何でも)
のViewModel - >プロパティとコマンドを公開ビューがデータバインディングに使用できること

つまり、ViewにはViewModelがDataContextとして、ViewModelのプロパティにはモデルのデータが反映され、ViewModelのコマンドはモデルに対して機能します。単純なケースでは、モデルとViewModelは時々同じです。

概観はここにあります:http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx
あなたがそれを探すならば、MVVMアプリケーションの構築に関するかなりの例を見つけることができます。

+0

私はViewModelという単語はミスリーディングだと思います。 ModelViewはそれにとってより良い言葉でしょうか?これは、モデルのビューであり、ビューのモデルではありません。私は、ボタンとビューのようなビューのモデルを厳密にグラフィカル表現と考えています。私はそれが一般的な解釈に反していることを知っています...しかし、私の見解からはより意味があります。 –

+1

私が参照している記事では、ViewModelがビューの抽象化であり、そのようなビューのモデルとなるように説明しています。ボタンのようなものは間違いなく私のためのビューになります。 – Botz3000

+0

プレゼンターの同じ行のViewModel(ビューのモデル)は、UIの「概念表現」(プロパティ、ビヘイビア、状態)を含む必要がありますが、「具体的な表現」(実際の可視ピクセル)はビュー自身。少なくともそれは私がそれを理解する方法です。全体として、WPFの用語は非常に混乱しています(同時に重複していて曖昧です)。 – heltonbiker

関連する問題