2012-01-20 21 views
0

領域に注入されたビューを含むビューを作成したい(どちらも独自のViewModelを持つ)。別の相対ビューを含むビュー

最初のビューには、いくつかのフィールドコントロール(ユーザー入力用のテキストボックス)を含む2番目のビューを実行するいくつかのアクションコントロール(新規、保存、削除、ロードボタン)が含まれます。

このタイプは異なる可能性があるため(顧客フィールド、商品フィールド、ユーザーフィールドなど)、最初のビュー(およびそのビューモデル)はそのビューの実際の(最終的な)タイプではありません。

問題は次のとおりです。MVVMを正しい方法で使用するにはどうすればよいですか?

答えて

2

私はあなたの質問を正しく理解すれば、一般的なオブジェクトを含むビューを持ち、その汎用オブジェクトが何であるかに基づいて別のテンプレートが必要になります。

そのような場合、一般的なインタフェースを使用する方法についてmy answeryour other questionにを参照してください、あなたのViewModelでの一般的なCRUD操作を処理するためのようContentControlDataTemplates

<ContentControl Content="{Binding SomeGenericObject}"> 
    <ContentControl.Resources> 
     <DataTemplate DataType="{x:Type local:CustomerViewModel}"> 
      <local:CustomerView /> 
     </DataTemplate> 
     <DataTemplate DataType="{x:Type local:ProductViewModel}"> 
      <local:ProductView /> 
     </DataTemplate> 
     <DataTemplate DataType="{x:Type local:OrderViewModel}"> 
      <local:OrderView /> 
     </DataTemplate> 
    </ContentControl.Resources> 
</ContentControl> 

を使用しています。

+0

こんにちは遍在するレイチェル。私はあなたに私に完全な答えを(再び)与えたと思います。今私はこの機能についていくつかの "ショット"を取らなければならない。私はすぐに戻ってきます。 –

+0

OK ...問題があります。私はPrismを使用しており、 "マスターページ"ビューはシェルプロジェクト(または共通モジュールまたはデフォルトモジュール)によって定義され、すべての内部ビューがそれぞれのモジュールに作成されます。したがって、「マスターページ」ビューでは、内部ビューのことを知ることはできません。分かりますか?私は何ができますか?ありがとう。 –

+1

@DiegoStiehl私は 'ConentControls'を使い、必要なViewModelに' Content'をバインドする傾向があります。その後、 'DataTemplates'を使ってWPFに各ViewModelの描画方法を伝えます。興味があれば、私はMVVM [ここ](http://rachel53461.wordpress.com/2011/12/18/navigation-with-mvvm-2/)のナビゲーションに関する記事を書いています。現在のコンテンツは 'ContentControls'と' DataTemplates'を使用しています – Rachel

関連する問題