【问题标题】:WPF MVVM: Should WPF namespaces be avoided in 'ViewModel'WPF MVVM:是否应在“ViewModel”中避免使用 WPF 命名空间
【发布时间】:2014-05-09 00:17:41
【问题描述】:

如果我们将解决方案分成三个项目:

查看

视图模型

型号

我们是否应该避免引用任何在“ViewModel”中处理“View”的程序集,例如System.Windows.Controls,或者是否可以使用WPF命名空间System.Windows之外的属性,例如“ViewModel”中的Visibility ' 项目。我担心的是,一旦我在“ViewModel”中引用了 WPF 程序集,后面的人就很容易滑倒并按照在视图模型代码中弹出对话框的方式做一些事情。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    完全避免 ViewModel 中的 WPF 命名空间和程序集通常是一个好主意。 ViewModel 不应该关心 View - 也不应该绑定到特定的 View 框架。

    例如,如果正确执行此操作,则相同的 ViewModel 可能会像 Windows Phone 一样适用于 WPF。如果您引用 WPF 程序集,这将中断。

    在您的情况下,避免引用 Visibility 的方法是仅使用布尔值,然后在 XAML 中使用 IValueConverterbool(或其他 ViewModel 和普通框架类型)转换为您正在使用的所需 View 技术(Visibility.Visible 等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2013-09-29
      • 2016-02-18
      • 2013-01-16
      • 1970-01-01
      • 2013-01-02
      • 2011-08-16
      相关资源
      最近更新 更多