这似乎是一个基本问题,但我无法弄清楚最佳实施.如何管理两个视图模型及其相应模型之间的关系.
例如,如果您在PersonViewModel上更改了Occupation属性,那么该更改如何逐渐下降到PersonModel中的Occupation属性.
我现在唯一可以看到它的方法是在视图模型中公开展示模型,但我认为它击败了MVVM的目的 - 将模型与视图分离.
internal class PersonViewModel : INotifyPropertyChanged
{
private readonly PersonModel person;
private OccupationViewModel occupation;
public PersonViewModel(PersonModel person)
{
this.person = person;
}
public OccupationViewModel Occupation
{
get { return this.occupation; }
set
{
if (!this.occupation.Equals(value))
{
this.occupation = value;
this.person.Occupation = this.occupation.Occupation; // Doesn't seem right
this.OnPropertyChanged(new PropertyChangedEventArgs("Occupation"));
}
}
}
}
internal class OccupationViewModel : INotifyPropertyChanged
{
public OccupationViewModel(OccupationModel occupation)
{
this.Occupation = occupation;
}
public OccupationModel Occupation { get; set; } // Is this …Run Code Online (Sandbox Code Playgroud)