2011-11-29 115 views
1

我正在開發我的第一個WPF應用程序,使用MVVM爲全屏的某種Kiosk。 我需要更改上下文(視頻視圖,文本視圖,PowerPoint視圖)以響應異步事件。如何更改WPF中的上下文

我有,因爲我已經定義在MVVM以下數據上下文,但我還沒有能夠在它們之間進行切換很難:

<Window.Resources> 
    <DataTemplate DataType="{x:Type vm:VideoViewModel}"> 
     <v:VideoView /> 
    </DataTemplate> 
    <DataTemplate DataType="{x:Type vm:PowerpointViewModel}"> 
     <v:PowerpointView /> 
    </DataTemplate> 
</Window.Resources> 

任何幫助將不勝感激,謝謝。

回答

0

通常我有一個ShellViewModel它包含一個CurrentPage屬性,其中包含當前頁面的ViewModel。在XAML中,我將綁定一個ContentControl.ContentCurrentPage,然後切換視圖,我只是將CurrentPage屬性切換到任何ViewModel應該是最新的。

<ContentControl Content="{Binding CurrentPage}" /> 

更改頁命令:

void ChangePage(ViewModelBase page) 
{ 
    CurrentPage = page; 
} 

舉一個例子,看我的this post