我正在开发一个新项目,并且在看到以前项目的一些困难后,这些困难没有提供足够的视图与模型分离(特别是使用 MVC - 模型和视图开始有点相互渗透),我想使用 MVVM。
我了解基本概念,并且很高兴开始使用它。然而,有一点让我有点难以理解——ViewModel 中应该包含哪些数据?
例如,如果我正在创建一个包含两条数据的 ViewModel,以便可以在一个表单中对其进行编辑,我是否可以像这样捕获它:
public PersonAddressViewModel {
public Person Person { get; set; }
public Address Address { get; set; }
}
或像这样:
public PersonAddressViewModel {
public string FirstName { get; set; }
public string LastName { get; set; }
public string StreetName { get; set; }
// ...etc
}
对我来说,第一个感觉更适合我们正在尝试做的事情。如果我们正在做更细粒度的形式(也许我们只捕获 FirstName、LastName 和 StreetAddress),那么下降到那个级别可能更有意义。但是,我觉得第一个是正确的,因为我们正在捕获表单中的 ALL Person 数据和 ALL Address 数据。像这样把事情分开似乎没有意义(还有很多额外的工作)。
欣赏任何见解。