我想知道在 MVVM 中我是否应该设计更接近视图或视图模型的转换器和命令。这对我来说是一个灰色地带,因为它们是两种类型的胶水对象,弥合了组件之间的差距。也许这并不重要,但我想知道 Stack Overflow 对此有什么看法。
我曾经将 Converters 放在 ViewModel 命名空间中,因为即使 View 发生变化,它们也经常是可重用的。但是,我看到越来越多的评论使它们更接近视图。请参阅以下问题的最佳答案:
您的 ViewModel 是否应该将 XAML 元素公开为属性?
WPF 转换器如何在 MVVM 模式中使用?
命令通常由 ViewModel 公开以实现 UI 事件,因此我也将它们放在 ViewModel 命名空间中。一个经典的例子是RelayCommands。然后我遇到了一个有趣的模式,即使用命令在主视图和 ViewModel 之间显示对话框。我发现它的简单性非常出色。该命令实际上只是一个代理,但显然是在 UI 领域。是还是不是?请参阅:
MVVM 和
使用 MVVM 处理 WPF 中的对话框
那么你认为命令和转换器应该放在 MVVM 中的什么位置呢?看法?视图模型?没关系?