【发布时间】:2012-09-28 05:03:12
【问题描述】:
我想知道在 MVVM 中我是否应该将转换器和命令设计得更接近于视图或视图模型。这对我来说是一个灰色地带,因为它们是两种类型的胶水对象,弥合了组件之间的差距。也许这并不重要,但我想知道 Stack Overflow 对此有什么看法。
我曾经将 Converters 放在 ViewModel 命名空间中,因为即使 View 发生变化,它们也经常是可重用的。但是,我看到越来越多的 cmets 将它们放置在更靠近视图的位置。查看以下问题的最佳答案:
Should your ViewModel expose XAML elements as properties or not?
How can WPF Converters be used in an MVVM pattern?
命令通常由 ViewModel 公开以实现 UI 事件,因此我也将它们放在 ViewModel 命名空间中。一个经典的例子是RelayCommands。然后我遇到了一个有趣的模式,即使用命令在主视图和 ViewModel 之间显示对话框。我发现它的简单性非常出色。该命令实际上只是一个代理,但显然在 UI 领域。是还是不是?见:
MVVM and Dialogs
Handling Dialogs in WPF with MVVM
那么您认为命令和转换器应该放在 MVVM 中的什么位置?看法?视图模型?没关系?
【问题讨论】:
标签: wpf xaml mvvm ivalueconverter icommand