gpt4 book ai didi

c# - MVVM:单独的 ViewModel 的目的是什么?

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

如果 View 的代码隐藏仅包含带有 InitializeComponent() 调用的构造函数,那么为什么不只使用 DataContext= “{BindingrelativeSource={RelativeSourceSelf}}”并使用 View 本身作为 View 模型?

我知道这技术上违反了单一职责原则,但由于 XAML 和代码隐藏是彼此独立定义的,因此它不会导致通常的困惑。对所有内容使用单独的 View 模型会导致文件结构更加困惑。

最佳答案

ViewModel 描述 View 状态。出于测试和重用目的,它必须独立于 UI。好处:

  1. 你可以通过单元测试覆盖ViewModel,而不必引用UI测试中的类
  2. 您可以在其他 UI 目标上重复使用您的 ViewModel:控制台应用程序、WinForms 应用程序、UWP 应用程序、Xamarin iOS/Android 应用程序、否展示物联网项目。您只需为新的目标平台编写 View 。
  3. 有时,即使在 WPF 和 MVVM 中,您也必须编写一些代码用于仅查看目的,因为它可能比为此创建一些新实体更简单、可读和可靠。如果你在代码后面也有 ViewModel,你会变得一团糟。

关于c# - MVVM:单独的 ViewModel 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44621729/

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