表示逻辑在哪里用于View-Model-ViewModel模式?

时间:2009-05-20 21:50:08

标签: wpf design-patterns

在View-Model-ViewModel中,操作基本上由绑定到视图的viewmodel执行。但是,由于没有使用后面的代码,并且viewmodel没有引用或知道调用它的控件,“表示逻辑”会去哪里?

例如,如果我想在单击按钮时为其他控件设置动画,该怎么办?这仍然会落后于代码吗?

1 个答案:

答案 0 :(得分:2)

要扩展Justin Niessner的评论,我将使用触发器来实现此动画,因为它是所有UI界限。

想一想:

  • 你会把代码放在哪里,以便当有人将鼠标悬停在一个按钮上时,它会变得有意义?
  • 单击按钮时“按下”该按钮的代码怎么办?

这些和你的问题都是主题的变体,所以我想在GUI中做。

但是,这条规则有一个例外。如果“动画”是一个处理动画,则可能值得将它绑定到ViewModel,以便ViewModel可以控制动画在处理某些内容时运行的时间。否则在GUI中进行。

编辑:根据您的评论。好的,所以动画应该运行ViewModel中的属性,而不是按钮单击事件。 Click应该通过命令在ViewModel中开始处理,该命令的执行代码应该在ViewModel上设置处理标志属性。然后,View可以绑定到该处理标志,并在设置该标志时显示进度条或其他任何内容。