我有任務寫一個用戶控件來顯示一些使用MVVM模板的結果。如何在我的ViewModel中偵聽來自另一個ViewModel的更改?
主應用程序(稱爲ApplicationVM
)有兩個屬性UserControlViewModel
和SelectedRecord
。第一個屬性包含UserControlViewModel
的一個實例。在XAML中,我使用這些屬性將UserControl
綁定到UserControlViewModel
。 DependencyProperty PageCount
適用於視圖中的顯示功能與UserControlViewModel
之間的簡單通知。
<control:UserControl DataContext="{Binding UserControlViewModel}" PageCount="{Binding DocumentPageCount}" />
這是ApplicationViewModel中第二個屬性的實現。
public Record SelectedRecord
{
get
{
return m_SelectedRecord;
}
set
{
m_SelectedRecord = value;
OnPropertyChanged("SelectedRecord");
}
}
後來這個屬性會被替換。但是我應該做的是在調用生成新內容的函數(例如GenerateContent()
)的「UserControlViewModel
」的屬性「SelectedRecord
」和「Record
」之間建立依賴關係。我如何才能使SelectedRecord
屬性的更改更新UserControlViewModel
的Record
屬性以生成新內容?或者我的UserControlViewModel
可以聽到OnPropertyChanged("SelectedRecord")
生成自動新增內容?
看看[ViewModelLocator(http://blog.roboblob.com/tag/viewmodellocator/) – 2012-02-05 19:52:26
你應該在這裏使用Mediator模式(http://en.wikipedia.org/wiki/Mediator_pattern) – 2012-02-05 23:59:30