2012-04-12 78 views
0

我已經實現了WPF導航服務從一個視圖導航到另一個。 我通過使用ViewModelLocator來實現這一點,ViewModelLocator每次接收到合適的「Galasoft Messenger」時都負責從視圖導航到另一個視圖。MVVM Light - 顯示當前視圖?

好的。

現在,有了很多Views-ViewModels對,我決定創建一個在某些視圖中共享(包含在XAML中)的用戶控件。 這個UserControl有它自己的ViewModel和一些屬性來設置它的外觀取決於當前顯示的View。

如何從當前顯示的視圖(在用戶控件中)訪問UserControl的ViewModel的屬性?

還有更多,我可以如何(以及在​​哪裏)確定當前顯示的視圖?

我可以張貼一些代碼,以幫助如果需要的話,但我想答案很簡短,但不知何故,我錯過了一些東西......

謝謝。

大號

回答

0

當我主持的用戶控件,我想訪問視圖模型我通常在this答案使用勾搭成一個數據綁定的DataTemplate一個ContentControl中等等。如果您需要切換視圖模型使用的視圖,可以使用this答案中的觸發器。

使用該設置,您將能夠設置用戶控件的視圖模型所需的所有屬性,並知道用戶控件正在使用哪個視圖。

+0

好的,但用戶控制這種方式並不需要它自己的viewmodel,我說得對嗎?在你的場景中,你可以對同一視圖模型有幾個視圖... – zero51 2012-04-13 06:55:43

+0

這個設置將允許多個視圖具有相同的視圖模型。如果您有多個頁面,每個頁面通常都會有它自己的視圖模型,並且用戶控件用戶控件將有一個單獨的視圖模型,以便用戶控件的功能可以與託管它的頁面分離。 – Erick 2012-04-13 13:28:28