【问题标题】:MVVM Is it ok to command controls in the view?MVVM 可以在视图中命令控件吗?
【发布时间】:2013-09-18 17:43:46
【问题描述】:

我可能只是对 MVVM 如何正常工作感到困惑。

我有一个属性(缩放级别),我并不认为它是数据本身的属性,所以我觉得它不在视图模型中。我觉得它确实是视图的一个属性,所以我很犹豫将处理它的命令放入视图模型中。

是否可以在需要处理该命令的视图中将一个中继命令附加到控件上?

我想这确实是一个问题,即 MVVM 是否根本不需要代码,因为我觉得将执行命令的实际代码放在控件中而不是将代码放在视图模型中然后根据视图模型的某些属性更新控件

【问题讨论】:

  • 这已在另一个问题中得到解决:stackoverflow.com/questions/6421372/…
  • ViewModels 用于对 View 进行建模,因此虽然 ZoomLevel 可能不是您的模型上的数据属性,但它可能是属于您的 ViewModel 上的特定于视图的业务属性。当然,如果它确实是一个特定于视图的属性,与您的应用程序逻辑无关,请随意将其放在视图后面的代码中:)

标签: c# xaml mvvm


【解决方案1】:

MVVM 是一种架构设计模式,它基本上描述了如何将 UI 与逻辑分离。

它通过宣传您将逻辑放入您的虚拟机中来实现这一点。据我所知,它没有说你不应该使用代码隐藏文件,也没有说你不应该在其中放入代码。

我使用 MVVM,但仍有一个代码隐藏文件。例如,它是放置 UI 特定代码的理想位置,这在 VM 中可能有些困难。

【讨论】:

  • 这意味着只有 UI 特定的代码应该在代码后面。只要你不把应用程序/业务逻辑放在后面的代码中就可以了。
猜你喜欢
  • 1970-01-01
  • 2013-01-16
  • 2010-11-05
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
相关资源
最近更新 更多