我的任务是编写一个用户控件,以使用MVVM模式显示一些结果。
主应用程序(称为ApplicationVM
)具有两个属性UserControlViewModel
和SelectedRecord
。第一个属性包含UserControlViewModel
的实例。在XAML中,我使用这些属性将UserControl
绑定(bind)到UserControlViewModel
。 DependencyProperty PageCount
用于在 View 中的显示功能和UserControlViewModel
之间进行简单的通知。
<control:UserControl DataContext="{Binding UserControlViewModel}" PageCount="{Binding DocumentPageCount}" />
这是ApplicationViewModel中第二个属性的实现。
public Record SelectedRecord
{
get
{
return m_SelectedRecord;
}
set
{
m_SelectedRecord = value;
OnPropertyChanged("SelectedRecord");
}
}
以后,此属性将被替换。但是我应该做的是在属性
SelectedRecord
和Record
的UserControlViewModel
之间建立依赖关系,后者调用一个函数来生成新内容(例如GenerateContent()
)。我如何才能使SelectedRecord
属性的更改更新Record
的UserControlViewModel
属性以生成新内容?还是我的UserControlViewModel
可以听到OnPropertyChanged("SelectedRecord")
来自动生成新内容? 最佳答案
我将使用Messenger-这样您的 View 模型可以很好地分离。
这是SO上讨论MVVM方面的话题:
MVVM light - how to access property in other view model