2010-12-16 14 views
2

MainViewを現在、メインパネル内にスタックパネルがある場合は、そして今私がしたいのは、メニュー項目のクリックに基づいて異なるビューを差し込むことです。これをMVVM Lightを使用して実装する方法は?MVVM Light for WPFのビューの配線

誰かがコードやビデオでプロジェクトサンプルへのリンクを投稿することができれば素晴らしいでしょう!

答えて

3

私はMVVM光については知らないが、以下のように、私はこのライトフレームワークなしでそのような何か:

<!-- Content area that contains user controls for all wizard steps --> 
    <Grid Margin="0,3,0,0"> 
     <Views:CustomerSelection Visibility="{Binding Path=IsCustomerSelectionVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:CustomerInformation Visibility="{Binding Path=IsCustomerInformationVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:CustomerPreferences Visibility="{Binding Path=IsCustomerPreferencesVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:ProjectSelection Visibility="{Binding Path=IsProjectSelectionVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:KitchenProjectPreferences Visibility="{Binding Path=IsKitchenProjectPreferencesVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:OtherProjectProperties Visibility="{Binding Path=IsOtherProjectPropertiesVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
    </Grid>  

そして、私はただのUserControlの1を作るための適切なプロパティを設定根底にあるのviewmodelで可視。

+0

よく見えますが、最初にすべてのビューとそのコンポーネントを読み込みますか? – WhoIsNinja

+0

私の場合は、2つのサブビューモデルを持つ1つの基本的なビューモデルがあるので、そうです。既に読み込まれている2つのドメインオブジェクトが含まれています。私はあなたの場合は分かりません。必要に応じて、可視になるまでビューモデル内のデータの読み込みを遅らせることもできます。 –

+0

thats right。ありがとうルードヴィヒ!! – WhoIsNinja

0

これを行うより良い方法は、すべてのビューのデータ型をメインビューで定義することです。 次にitemscontrol(mainviewmodelのviewmodelsプロパティのコレクションにバインドします)

menuitemのクリックに基づいて、そのviewmodelsコレクションをクリアし、必要なビューを追加します。

関連する問題