私の提唱する MVPVM パターンの目的は View と ViewModel の密結合を減らすことにあります。
サンプルは以下のページの Community Open Day 2012 TwitterSample を参照してください。
http://www.mnow.jp/tabid/220/Default.aspx
実装における注意点は以下の通りです。
MVVMパターンからの変更点
View
1)ViewModelからメッセンジャーの通信を受けてビヘイビアを起動する処理を書かない。
Commandの処理はPresenterが行うのでViewを直接操作できる。
2)DataTemplate の DataType は利用するが、DataTemplateSelector は利用しない。
ViewModel の派生クラスを使えば DataTemplateSelector を使わずに DataTemplate の DataType で識別できる。
ViewModel
1)Commandの処理を書かない。
Commandの処理はPresenterが行う。
2)ViewModel は Command も含め、プロパティを View に提供することが主処理となる。
3)コンストラクタ・終了処理は今までの通り書いていいがイベントは生成しない。
4)View と ViewModel 間で完結する入力検証は行っていい。
5)ソート・絞り込みなど ViewModel 内部で完結するデータ操作は行っていい。
Application
1)初期に起動する Presenter を決め プレゼンテーションロジックを書かない。
プレゼンテーションロジックは Presenter に含む。
2)初期に起動する Presenter の初期処理と終了処理を行う。
Presenter
1)ViewModel の Command を上書きして Command の処理を行う。
2)描画時には Model のデータを取得して ViewModel に設定する。
3)Command の処理で Model を更新し、ViewModel を更新する。
4)子供の Presenter の初期処理と終了処理を行い、描画を指示する。ダイアログは終了をまつ。
注意点は一応以上ですが順次追加するかもしれません。
上記 MVVM からの変更点を見ながらサンプルソースを眺めてみてください。