.net - ViewModel 类的可重用性如何?

标签 .net wpf mvvm viewmodel reusability

我正在开发一个 WPF 应用程序,并且正在使用 MVVM 模式来构建它。最初我认为 ViewModel 应该是可重用的,但现在我不太确定了。

  • 如果我需要 WinForms 应用程序的类似功能,我是否应该能够重用我的 ViewModel?
  • Silverlight 不支持 WPF 所做的所有事情 - 我应该能够重用 Silverlight 应用程序吗?
  • 如果我想为我的应用程序制作一个 Linux GUI 怎么办。然后我需要在 Mono 中构建 ViewModel - 这是我应该争取的吗?
  • 等等..

  • 所以;应该考虑一个特定的 View 来编写 ViewModel 类,还是考虑可重用性?

    最佳答案

    要回答您的问题,请考虑单一责任原则:

    "A class should have one, and only one, reason to change."



    我想说,在合理的范围内,您通常不想为多个 View 重用 ViewModel。我争论的主要原因是,这会给你的 ViewModel 提供不止一个改变的理由。换句话说,如果一种或另一种观点发生变化,它就需要改变,在我看来,这是改变的两个原因。它停在哪里?在这种情况下,我会保持简单,并将一个 ViewModel 绑定(bind)到 View。

    使用带有 WPF 的 MVVM 需要考虑的另一件事是数据模板。如果每个 ViewModel 只满足一个 View ,那么实现起来会容易得多。

    关于.net - ViewModel 类的可重用性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2447026/

    相关文章:

    c# - winforms c# 中的静态属性

    c# - 从十六进制获取颜色

    wpf - 为什么 TreeView 之间/内部的 Tab 键顺序不起作用?

    c# - 我应该什么时候更新数据库以反射(reflect)属性变化?

    c# - 是否有可能有一个永远重复的 RX observable

    javascript - 从 JavaScript 按钮调用 WPF 应用程序函数

    c# - 使用 WPF 和 C# 进行嵌套数据绑定(bind)

    mvvm - 使用简单的分层数据源在 Kendo TreeView 中设置显示名称

    Android MVVM设计模式( Activity 间通信)

    c# - 关闭或处置