wpf - ViewModel - 我的业务逻辑层?

标签 wpf mvvm viewmodel business-logic

在我的工作中,我被分配到一个使用 MVVM 模式实现的 WPF 项目。它具有零代码隐藏的 View ,这很酷。它使用 Entity Framework 生成的数据模型作为模型(与其他一些类),我怀疑这是一种正确的方法。但最让我烦恼的是,它拥有 ViewModel 作为所有业务逻辑和应用程序/操作代码所在的最厚层。

现在我是 WPF/MVVM 的新手,但我对 MVVM 模式的理解表明 ViewModel 只应该为 View 提供方法,以便它可以使用 Model,这使得它成为最薄的层和我的业务逻辑和应用程序/操作代码应该驻留在其他地方。

如果有人可以帮助我,我将不胜感激。我对 ViewModel 的目的是对还是错?我应该把我的业务逻辑和应用程序/操作代码放在其他地方,还是只考虑 ViewModel 作为我的业务逻辑层?

最佳答案

是的,我同意在 View 模型中没有业务逻辑,除非它是非常简单的数学计算。我工作的公司喜欢将所有业务逻辑保留在模型中。我个人认为你的项目中应该有一个服务层来处理所有这些逻辑。但是是的, View 模型应该专注于 View ,获取和发送输入,最好通过 INotifyPropertyChanged 接口(interface)更新值/属性。我喜欢将 View 模型视为学校指挥交通的“交叉 guard ”。 :P
- 希望这可以帮助

关于wpf - ViewModel - 我的业务逻辑层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12046934/

相关文章:

c# - 无法更改DataGrid中的前景

c# - WPF TextBlock 中的自动垂直滚动条?

apache-flex - 避免 View 模型中的重复数据和计算

c# - MvvmCross MvxListView 不刷新项目删除

java - MVVM 在多个存储库中重复代码

c# - 如何为在 ViewModel 的 DataTemplate 中创建的 View 设置 DataContext

wpf - 为什么 TabControl.SelectedContent != (TabControl.SelectedItem as TabItem).Content?

c# - 如何在 MVVM 中处理 `ScrollViewer.ScrollChanged` 事件?

swift - 我如何使用 RxSwift 让我的程序快速响应

wpf - 不反射(reflect)在 UI 上的任务更新数据绑定(bind) OC