代码之家  ›  专栏  ›  技术社区  ›  priyanka.sarkar

为什么是MVVM?它的核心好处是什么?

  •  35
  • priyanka.sarkar  · 技术社区  · 16 年前

    在处理WPF时,为什么我们选择MVVM而不是MVC或MVP?

    我们通过使用它获得了什么额外的好处?

    提前谢谢

    6 回复  |  直到 16 年前
        1
  •  48
  •   kowsky    7 年前

    我会给你指出一个特别有用的方法 video

    首先,关键的好处是实现了 view model . 这实际上意味着,如果/当您的模型需要更改时,它可以在视图不需要更改的情况下更改,反之亦然。

    第二,当你的 模型 看法 ,您可能希望以您的 模型 DateTime 对象,但您的视图可能希望以完全不同的方式显示它。没有 viewmodel 您必须在 模型 支持视图或修改可能严重混淆“模型”的属性。

    您也可以使用 视图模型 聚合存在于单独类/库中的模型部分,以便为 看法 处理。它是 非常 您不太可能希望以用户希望或希望数据呈现给他们的方式处理代码中的数据。

    视图模型

    远的 我的建议是看视频。像这样工作几天后,你会想没有它你怎么过得去。

    祝你好运

        2
  •  19
  •   Anderson Imes    16 年前

    这些是我的MVVM特有的

    1. 增加视图的“可混合性” (能够使用表达式混合来设计视图)。这使得有幸拥有一名设计师和一名程序员的团队能够实现职责分离。。。每一个都可以独立工作。
    2. “无外观”视图逻辑
    3. 没有重复的代码来更新视图
    4. 可测试性

    其他两种模式在解决的问题方面实际上是有点不同的。您可以将MVVM与MVP和MVC结合使用(大多数好的示例都会采用某种形式)。

        3
  •  5
  •   Rob Fonseca-Ensor    16 年前

    WPF比任何其他UI框架都有更好的数据绑定,如果没有它,MVVM将难以驾驭

        4
  •  3
  •   Jeremy Roberts    16 年前

    烘焙支持ICommand和INotifyPropertyChanged是两个最大的好处。使用MVVM使连接命令和将数据插入WPF UI变得非常容易。一切正常。

        5
  •  1
  •   Simon Mourier    10 年前

    WPF是以数据绑定为核心构建的,以实现UI和模型的分离。但在WPF中进行数据绑定的技术方式有些特殊,因为它与以下类相关联:

    • 关联属性
    • InotifyProperty已更改
    • 可观测收集

    正因为如此,使用标准的.NET技术无法真正按照您想要的方式编写模型。例如,WPF TreeView几乎不可能使用数据绑定和模板来使用w/o。例如,您不能像在Winforms中从通用模型那样简单地填充它。信息技术 必须

    假设V代表XAML代码和它的代码隐藏对应物(因此它作为一种技术与WPF相关联),假设M代表您的模型(因此它无论如何都不与WPF UI技术相关联)。

    必须

    作为旁注,MVVM的另一种选择是构建V&M(w/o虚拟机管道)与M的组合是WPF兼容的,但仍然具有合理的UI独立性。从历史上看,ObservableCollection位于WindowsBase.dll程序集中(随WPF一起提供),因此将通用模型绑定到与UI技术相关的东西看起来确实很奇怪。它已被移回System.dll。即使这样,有时也很难保持一个纯虚拟机模型,而不是专门为WPF调整M。。。

        6
  •  0
  •   danidl    16 年前

    XAML代码的数据绑定能力以及触发器的存在将打破MVP和MVC模式。