【发布时间】:2016-07-08 15:58:03
【问题描述】:
我正在学习 Silverlight/MVVM。现在我面临着命令的问题,我认为这过于复杂了。我想在命令后关闭子窗口。
据我了解,根据关注点的分离,它应该从视图中执行。
就我寻找解决方案而言,我找到了它,对于这样一个微不足道的任务来说,这并不是微不足道的。
综上所述,我必须说视图、视图模型和模型的分离是很好的想法。
从 View 到 ViewModel 的绑定也很干净。
但是命令呢?据我了解,它们只是要执行的一段代码(如委托)。但是它们太复杂和麻烦了。
我想知道你的意见。 VieModel 将具有属性和普通公共方法的想法怎么样,它将从视图事件中执行。如果我不将任何与视图相关的元素传递给视图模型,它仍然是 MVVM,对吧?
当然,会有一个缺点,我必须将 IsEnabled 单独绑定到 ViewModel 中的属性以模仿命令的 CanUpdate 功能。不是你view不知道ViewModel。 视图不太可测试,是吗?
它会非常灵活。例如,在点击事件中,我会做一些严格的视图逻辑,从 viewmodel 对象调用方法,然后可能调用另一个方法,然后再做一些视图逻辑。
那么,你怎么看?
【问题讨论】:
-
呵呵,我是不是从一些 MVVM/XAML 纯粹主义者那里得到了减分,甚至考虑不做唯一正确的方法?
标签: c# wpf silverlight mvvm