【发布时间】:2011-12-02 06:17:18
【问题描述】:
我正在处理一个项目中的现有代码,该项目到处都有丰富的模型(而不是 POCO)。基本上,有什么好的方法可以混合丰富的模型和ViewModels而不重复代码?
- 丰富的模型具有数据验证。有什么简单的方法可以通过 ViewModel 重用这些?
例子:
public class PersonViewModel : INotifyPropertyChanged, IDataErrorInfo
{
private Person _person;
[Required] //This seems redundent...
public String FirstName { ... }
}
public class Person
{
[Required]
public String FirstName { ... }
}
这只是一个例子......基本上,如果您有一个富模型,有没有办法在维护 MVVM 并避免冗余代码的同时利用它?我真的很想避免让我的模型成为任何数据上下文或被 ViewModel 完全公开。
例如:
public class PersonViewModel : INotifyPropertyChanged, IDataErrorInfo
{
private Person _person;
//This seems like a bad thing to do...
public Person ThePerson { get { return _person; } }
}
【问题讨论】:
标签: c# design-patterns mvvm viewmodel models