gpt4 book ai didi

mvvm - MVVM 模式中 View-first 与 ViewModel-first 的优缺点是什么

转载 作者:行者123 更新时间:2023-12-03 06:11:18 25 4
gpt4 key购买 nike

我将介绍如何在现实世界的应用程序中使用 MVVM,并且我将介绍在应用程序中使用 MVVM 作为模式时所涉及的 宗教 war 设计决策的部分。在 MVVM 应用程序中,有两种主要方法(据我所知)可以实例化新的 View/ViewModel 对:

  1. View-First,您在其中创建一个 View ,它会创建自己的 ViewModel 并将其设置为其 DataContext。
  2. ViewModel-First,您可以在其中创建新 View 模型并创建新 View 以响应 ViewModel 属性的更改,通常使用 ItemsControl 和/或 DataTemplate。

根据您的经验,每种方法的优缺点是什么?它们能实现什么功能?您在使用它们时会遇到什么问题?

结果摘要

<小时/>
  • 首先查看 - 优点
    • 轻松跟踪 View 使用哪个 ViewModel
  • 首先查看 - 缺点
    • 不允许单个 View 轻松地与多个 ViewModel 一起使用
    • 需要额外的事件来处理 View 和 ViewModel 之间的通信
  • ViewModel优先 - 优点
    • 允许对打开新 View 和 View 模型的逻辑进行更完整的测试
    • 随着应用程序变得越来越大,往往会变得更加干燥
    • View 和 ViewModel 更加独立,可以更轻松地单独处理
  • ViewModel优先 - 缺点
    • 在没有 DataTemplateSelector 和类型化 DataTemplate 的情况下,在 Silverlight 中进行设置会更加困难。

最佳答案

考虑到 WPF 中的数据模板功能,我认为 ViewModel-First 是 WPF 打算使用的方式。

我将澄清这一说法:数据模板允许您永远不会从 ViewModel 实例化 View 。如果操作正确,您的 View 和 View 模型可以保存在不互相引用的单独项目中。此外,ViewModel 项目甚至不应该引用任何PresentationFramework 程序集,从而使任何可以想象的用户都可以使用您的ViewModel。

关于mvvm - MVVM 模式中 View-first 与 ViewModel-first 的优缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3763072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com