我的任务是编写一个用户控件,以使用MVVM模式显示一些结果。

主应用程序(称为ApplicationVM)具有两个属性UserControlViewModelSelectedRecord。第一个属性包含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");
    }
}

以后,此属性将被替换。但是我应该做的是在属性SelectedRecordRecordUserControlViewModel之间建立依赖关系,后者调用一个函数来生成新内容(例如GenerateContent())。我如何才能使SelectedRecord属性的更改更新RecordUserControlViewModel属性以生成新内容?还是我的UserControlViewModel可以听到OnPropertyChanged("SelectedRecord")来自动生成新内容?

最佳答案

我将使用Messenger-这样您的 View 模型可以很好地分离。

这是SO上讨论MVVM方面的话题:

MVVM light - how to access property in other view model

10-06 08:10