2013-08-01 59 views
0

我想在我的Widnows商店應用程序中創建幫助。我正在使用MVVM模式。我發現這一點: http://msdn.microsoft.com/en-us/library/windows/apps/jj649425.aspx如何在ViewModel中獲取UserControl的父項

我已經完成了控制XAML,但我不知道如何做到這一點:

private void MySettingsBackClicked(object sender, RoutedEventArgs e) 
    { 
     if (this.Parent.GetType() == typeof(Popup)) 
     { 
      ((Popup)this.Parent).IsOpen = false; 
     } 
     SettingsPane.Show(); 
    } 

在MVVM方式。

回答

1

這是關於MVVM模式應該有在Page.xaml.cs沒有代碼,但不是這種情況很常見的混亂。其實MVVM模式意味着,不依賴於你的UI你的邏輯部分必須是在你的視圖模型該網頁的

所以對於如果您在一些Control上點擊設置一些控制的可視性例子所以提錯了這種模式下。這就是爲什麼信使類在那裏,如果你想發送一些通知或消息,你可以使用它。

所以你的情況一切都太守所以只需使用一個信使類的MVVM,如果想送父母控制的信息。

+0

感謝您的回答。我知道MVVM並不意味着cb中沒有代碼,但我喜歡避免cb。我認爲在任何我不知道該怎麼做的地方使用Messenger都是錯誤的。也許並非如此。但我更願意檢查。 – user2641078

+0

msdn鏈接代碼來自BlankPage cb。您對服務中的改變有什麼看法? – user2641078

+0

請多說明一點。您實際上通過「在服務中更改它」意味着什麼? – loop

相關問題