2012-03-28 162 views
1

我是新來MVVM和工作中的應用程序,我想實現一些東西在我的應用程序MVVM視圖模型查看通訊

  1. 我的視圖模型應該能夠啓動一個新的視角。 方案(命令被綁定到一個按鈕和一些工藝決定做什麼,並根據其結果,我需要顯示視圖1或視圖2)

  2. 在一個全成操作我的視圖模型應該顯示一個消息框,如果多個視圖是開放的,那麼消息必須在右視圖上提示(與視圖模型綁定)。

我想提供某種通知從我的視圖模型來查看。請引導我朝着正確的方向前進。

謝謝

+0

如果您正在尋找導航。你可能會喜歡Silverlight的導航框架。 http://msdn.microsoft.com/en-us/library/cc838245(v=vs.95).aspx – 2012-03-28 08:23:10

+0

你能更詳細地描述你的問題嗎? – 2012-03-28 17:02:06

回答

0

你可能想嘗試一些mvvm框架。我個人很喜歡MVVM光,因爲它工作在Silverlight和WPF,並且很容易使用http://mvvmlight.codeplex.com/(無隸屬關係)

這裏是一個很好的比較的一些主要框架/對比度:What framework for MVVM should I use?

大部分框架有一個消息傳遞系統,可以在視圖和視圖模型之間以及在視圖模型之間發送更新。大多數框架還提供處理MVVM消息框的罐頭消息(我知道MVVM Light)。

爲了處理在WPF視圖之間切換我使用的DataTemplates和內容控制

在我的.xaml添加 <ContentControl Content="{Binding ActiveViewModel}" /> 並且這是所注入的視圖將顯示空間的圖。 ActiveViewModel是保存所選viewModel的viewModel的對象。

在ResourceDictionary中我添加類似:

<DataTemplate DataType="{x:Type ViewModelNameSpace:ViewModelClassName}"> 
    <ViewNameSpace:ViewClasName/> 
    </DataTemplate> 

最後,在視圖模型我設置ActiveViewModel屬性(即設置爲通過INotifyPropertyChanged的變化的UI通知)到視圖模型的實例,我想使用。

ActiveViewModel = new ViewModelClass();