MVVM模式。我理解正确吗?

时间:2015-03-18 20:15:59

标签: c# wpf mvvm

我对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和委托来暴露这些东西。

我错过了什么?显然,我没有看到这种模式的某些方面。

1 个答案:

答案 0 :(得分:1)

这里的问题是,是为每个模型类编写视图模型类,还是仅通过视图模型的属性公开模型对象。

我认为这取决于项目:模型中的视图模型有多么不同,项目有多大,是用于其他应用程序的域等等。

您应该阅读the article 'MVVM: To Wrap or Not to Wrap? '了解更多信息。