2012-01-10 39 views
0

我想知道如何在按下按鈕時在主窗口中創建不同的視圖。我不確定正確的術語,所以這阻礙了我的谷歌。更改主要查看區域

我在想主要的觀看區域是內容控件,當事件發生時我可以改變。我做了一個小圖來幫助說明我的想法/想法。

任何輸入將不勝感激。謝謝! Crude Mockup

+2

通常被稱爲主選擇合適的視圖做這項工作的其餘部分據我所知,細節架構。我不會使用事件,但選擇和[數據綁定](http://msdn.microsoft.com/en-us/library/ms752347.aspx)。 – 2012-01-10 19:09:34

+2

看起來像TabStripPlacement =「Left」的TabControl。看到這裏:http://msdn.microsoft.com/en-us/library/system.windows.controls.tabcontrol.tabstripplacement.aspx – Clemens 2012-01-10 19:34:32

回答

5

這將是很容易實現使用MVVM方法,這塞納里奧....

做一個視圖模型爲你的MainView。然後定義你的用戶控件的的ViewModels的屬性

例如,你有兩個用戶控件作爲FirstViewSecondView然後在您的ViewModels使屬性類型視圖模型(通常稱爲ViewModelBase)

設置綁定爲

ViewToLoadProperty
 <!-- Panel For Hosting UserControls --> 
     <Border Grid.Column="2"> 
      <ContentControl Name="userControlContentControl" 
          Content="{Binding Path=ViewToLoadProperty, 
               }"> 
       <ContentControl.Resources> 
        <DataTemplate DataType="{x:Type ViewModelLayer:FirstViewModel}"> 
         <ViewLayer:FirstView/> 
        </DataTemplate> 
        <DataTemplate DataType="{x:Type ViewModelLayer:SecondViewModel}"> 
         <ViewLayer:SecondView /> 
        </DataTemplate> 
             </ContentControl.Resources> 
      </ContentControl> 
     </Border> 
     <!-- Panel For Hosting UserControls --> 

然後當你點擊按鈕使用命令到相應的視圖模型Intance設置爲這個(ViewToLoadProperty)財產......(使用RelayCommannds或類似的東西)

DataTempates將通過根據權類型視圖模型

可以使用MVVMLight工具包,如果要實現MVVM模式.. :)

+2

我有其他答案,我仍然給你+1。我需要學習MVVM。 – Paparazzi 2012-01-11 02:49:05

+2

@BalamBalam謝謝...... :) – Ankesh 2012-01-11 06:19:03

+0

不錯的答案,+1。 – Will 2012-03-05 14:00:38

2

在右邊你可以有一個框架。然後該按鈕將不同的頁面或用戶控件綁定到該框架的內容。