2017-05-23 5 views
1

MVVMライトViewModelLocatorはどのビューがロードされているかを識別し、ビューモデルを動的に生成できますか?MVVMライトが可能ですか?ViewModelLocatorビューに基づいてビューモデルを動的に生成

public ViewModelLocator() 
{ 
    ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); 

    //Find the current window/ user control loading 
    ContentControl control = 

    //Generate the View model dynamically 

    //Register to dynamically created view model 
    SimpleIoc.Default.Register<SelectedViewModel>(); 

} 

My Project structure is given below

+0

わかりませんが、それは素晴らしいアイデアです!自動ビューモデルを生成しますか? –

+0

はい、私は今後、すべての異なるビューモデルを登録する必要はないので、次のビューではビューとビューモデルを追加するだけで、ロケータでコードを変更することなくすべてを行うことができます。 – ParkAtStreet

+0

新しいViewModelを作成してから、VMをViewコンストラクタに渡してコードで作成するのはなぜですか。これはあまりコードではなく、あなたが何をしているのかがはっきりしています。 – rolls

答えて

1

あなたはMVVMCrossのような命名規則ベースのフレームワークにViewModelLocatorコーディングスイッチを回避したい場合。 MVVMCrossでは、ロケータはまったく用意されていません。MyViewModelオブジェクトとMyViewビューを作成するだけです。フレームワークは名前の規約に基づいて一致させます。

+0

私はそれが好きですが、それはMVVMの光を得る利点を取り除くでしょう。 – ParkAtStreet

関連する問題