wpf - 有助于理解 MVVM 模式?

标签 wpf mvvm prism viewmodel

我正在尝试使用 WPF 和与 MVVM 模式密切相关的 Prism 框架来加快速度。我准备了许多关于 MVVM 的不同描述、示例和讨论,每一个都略有不同,让我有点困惑。

我的理解如下:

MVVM 模式有 3 个部分:-

  • 模型 - 保存应用程序数据/信息的类。
  • View - 应用程序的视觉元素。
  • ViewModel - 与视觉元素相关的逻辑、状态和其他行为。它从模型中获取数据并以 View 可以直接使用它的方式公开它(可能带有一些数据转换/格式)。

  • 我不确定的是:
  • 这 3 个部分是否涵盖了应用程序的每个部分?或者应用程序的某些部分是否在这 3 个部分之外?
  • 是 ViewModel 还是其他一些负责填充模型的部分?

  • 提前致谢

    最佳答案

  • 绝对不。除非他们这样做。如果您的应用程序很简单,那么一切都可以在 View、ViewModel 或 Model(s) 中处理。如果您的应用程序很复杂,并且最佳实践要求您将逻辑分解为它们自己的类型(通信逻辑、存储库逻辑等),那么您将无法阻止。 MVVM 只关心 View 中以 View 为中心的逻辑,ViewModel 中的应用程序逻辑,以及存储信息以在两者之间传输的方式。
  • ViewModel 的唯一任务是解释用户操作并准备模型中的逻辑结果,以便 View 可以向用户显示此信息。在某些情况下,模型本身包含一些逻辑以便它可以响应用户操作是有意义的。然而,根据我的经验,这种 mini-ViewModel-Model 设计是对缺乏经验的开发人员的设计决策的 react 。一旦您真正掌握了 MVVM,除了验证逻辑之外,您通常不必(或不想)将任何代码放入模型中。
  • 关于wpf - 有助于理解 MVVM 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203474/

    相关文章:

    c# - 将背景设置为 Canvas

    c# - 如何使用 mvvm 在 ModernWindow 中正确加载内容

    java - 带有 MVVM 方式 fragment 的 BottomNavigationView

    c# - WPF Prism - 在导航中发送对象

    c# - WPF内存碎片

    c# - WPF ListViewItem 项目复选框。如何获取所有选中的项目?

    c# - Unity3d 应用程序作为用户控件

    c# - MVVM ViewModel 到模型通信和参数

    mvvm - Xamarin Forms MVVM (Prism) with Media.Plugin - 如何从设备存储中获取照片

    c# - 模块中的 Prism、Unity 和默认类型注册