我对Windows Forms非常熟悉,但我刚刚开始使用WPF,而且我很难绕过MVVM模式。
DRY原则不是WPF心态的目标吗?因为这种模式让我基本上将我的整个模型复制到ViewModel中,所以我可以在我的setter中引发INotifyPropertyChanged
。
//from ModelView
public string FirstName
{
get
{
return employee.FirstName;
}
set
{
if(employee.FirstName != value)
{
employee.FirstName = value;
this.NotifyPropertyChanged("FirstName");
}
}
}
我认为这个想法是将域对象与视图分离,但也许我在这个过程中缺少其他一些心理步骤。验证是否会移入viewmodel?这似乎是一个坏主意,因为无论前端数据仍然需要相同的限制。这使我们需要ICommands和委托来暴露这些东西。
我错过了什么?显然,我没有看到这种模式的某些方面。
答案 0 :(得分:1)
这里的问题是,是为每个模型类编写视图模型类,还是仅通过视图模型的属性公开模型对象。
我认为这取决于项目:模型中的视图模型有多么不同,项目有多大,是用于其他应用程序的域等等。
您应该阅读the article 'MVVM: To Wrap or Not to Wrap? '了解更多信息。