2012-01-16 8 views
1

の設計、WPF、MVVM、MasterDetailPage、私はMVVMの世界で自分の道を歩くしようとしている

私は本当にそのように私は http://blog.roboblob.com/tag/viewmodellocator/

で見たものだけを、任意のフレームワークを訴えていませんよポストとそれは非常にうまく動作します。

私は3つのユーザーコントロールを含むマスター詳細ビューを作成しようとしています。 そのうちの一つは、(ウィザードのような)ユーザ入力に応じて変更することが

を必要とするので、私は、各ビューが自分のviewmodelを作成して、「自動に」それをバインドし、私が読ん郵便で

MasterDetailsView 
-> MenuView 
-> FirstPageView 
-> SliderView 

のようなものを持っています FirstPageViewは彼のビューモデルを手に入れました。

私はFirstPageViewボタン(次)を得た場合FirstPageView新しいのviewmodel

にバインドするSliderView変更の選択は、私がSecondPageViewにFirstPageViewを切り替えなどにしたい、それの内側をクリックした場合..

アイム誰も私に方法を表示してくださいこれを設計し、解決する方法を教えてくださいできますか?

私はmvvmライトやその他のフレームワークを使用する必要がありますか?私はmvvmのライトを使用しようとしましたが、その例がないと私を後退させてしまいます。

ガイダンスは歓迎されます、ありがとうございます。

答えて

2

以下の文が間違っている:

各ビューは自分のviewmodelを作成して、「自動に」それをバインドするので FirstPageViewが彼のviewmodel

あなたの意見はのライフサイクルに責任がないはずですあなたのビューモデル。

MVVMパターンを使用するときに覚えておくべき最も重要なことの1つは、表示せずにアプリケーションを実行できることです。あなたのケースでは、あなたの望むビューを密接に反映するビューモデルを作成します。ここで擬似コードは次のとおりです。

MasterDetailsViewModel 
{ 
    MenuViewModel 
    CurrentPageViewModel 
    SliderViewModel 
} 

お知らせここでの大きな違いは、私たちがCurrentPageViewModel、ないページに固有のビューモデルを持っているということです。このプロパティはFirstPageViewModelインスタンスとして開始され、ユーザーがあるページから次のページに進むときに変更されます。

これを実現する方法の詳細については

、私は徹底的にジョシュ・スミスによって記事をお勧めします:

WPF Apps With The Model-View-ViewModel Design Pattern

+0

おかげで、私はこれを読んでますが、一つの質問は、どのように私は、ビューblandabilityあなたの道を保つことができますか? – ibm123

+0

MVVMはブレンド可能性を促進しますが、設計時データを追加する必要があります。私の答えが助けられたら、答えとしてupvoteまたはマークしてください。 – ColinE

+0

ありがとうございますが、デザインタイムデータを追加する方法がわからないので、どうすればいいですか? – ibm123