- MVVMではVMが肥大化しがち VMのやっていることの大部分をPに委譲することでわかりやすくなる
- PがVとVM両方を知っている(保有している)ので
Messenger DataTemplateなどの機構を使わずViewのメソッドを直接呼び出すことが出来る。 - Pから見るとVもVMも大差ないので本来Mにあるべきロジックを含むコントロール(ActiveX等?)を使う(使わざるを得ない)場合もきれいに掛ける
- View
- ViewModelの各プロパティコマンドとバインドする。
- ViewModel
- INotifyPropertyChanged
- データバインディング用のプロパティ
- イベント、コマンド等(の変数・プロパティ)を保持
- Presenter
- V,VMの参照を保持,あとMも
- new Presenter(new View(),new ViewModel());
- V-VM間の接続(View.DataContext = ViewModel)
- 接続解除(View.DataContext = null;)
- Mの関数を呼び出し、その結果をVMに代入
- VMのイベント、コマンド等の中身を設定
- Model
- その他