Wpf 使用MVVM构建应用程序

Wpf 使用MVVM构建应用程序,wpf,vb.net,mvvm,Wpf,Vb.net,Mvvm,我需要一些帮助来构建MVVM应用程序。这次我想用正确的方式做 我的视图绑定到视图模型,该视图模型绑定到模型。没问题。显示数据不是问题,更新数据是我的问题。 因此,当视图要求视图模型更新模型(使用命令)时,哪个需要处理逻辑? 在我的例子中,更新数据并不是一件小事,有很多文件需要进行很多计算。 另外,我真的希望模型不知道业务逻辑。那么如何做到这一点呢?模型中的一个属性,指示要更新的he?或者,ViewModel必须知道业务逻辑?这是最佳实践吗?该模型实际上是业务数据状态的快照。您的非平凡计算可以封装

我需要一些帮助来构建MVVM应用程序。这次我想用正确的方式做

我的
视图
绑定到
视图模型
,该视图模型绑定到
模型
。没问题。显示数据不是问题,更新数据是我的问题。 因此,当
视图
要求
视图模型
更新
模型
(使用
命令
)时,哪个需要处理逻辑? 在我的例子中,更新数据并不是一件小事,有很多文件需要进行很多计算。
另外,我真的希望
模型
不知道业务逻辑。那么如何做到这一点呢?
模型
中的一个属性,指示要更新的he?或者,
ViewModel
必须知道业务逻辑?这是最佳实践吗?

该模型实际上是业务数据状态的快照。您的非平凡计算可以封装在服务中,这些服务可以在接口后面抽象并注入到视图模型中。这样,您的视图模型除了通过接口契约调用它们之外,对这些复杂的过程一无所知。因此,您的命令启动,您的视图模型提供编排,您的服务提供实际的业务计算,并将生成表示系统新状态的更新模型。

该模型实际上是业务数据状态的快照。您的非平凡计算可以封装在服务中,这些服务可以在接口后面抽象并注入到视图模型中。这样,您的视图模型除了通过接口契约调用它们之外,对这些复杂的过程一无所知。因此,您的命令启动,您的视图模型提供编排,您的服务提供实际的业务计算,并将生成表示系统新状态的更新模型。

您的目标(没有业务逻辑的模型)目前主要被认为是一种不好的做法。它被称为贫血域模型,导致服务类迅速变大或承担许多责任,因此它成为一种反模式。Rich Domain Model将绑定到某个域实体的逻辑放在实体本身中,并且只为业务逻辑使用一个薄服务层,如果不打破单一责任原则(SRP),就无法将其放入模型中查看Jimmy Bogards的“打造邪恶的域模型”了解为什么贫血域模型不好,为什么富域模型更好。现在,您的目标(没有业务逻辑的模型)主要被认为是一种糟糕的做法。它被称为贫血域模型,导致服务类迅速变大或承担许多责任,因此它成为一种反模式。Rich Domain Model将绑定到某个域实体的逻辑放在实体本身中,并且只为业务逻辑使用一个薄服务层,如果不打破单一责任原则(SRP),就无法将其放入模型中查看Jimmy Bogards的“打造邪恶的域模型”了解为什么贫血域模型不好,为什么富域模型更好。