MVVM和显示更多GUI的命令

Joe*_*ite 6 wpf mvvm

我喜欢由ViewModel公开的RelayCommand的MVVM概念.这非常优雅,对于无需进一步用户输入即可完成的操作.简单.可测试.

但是,并非所有操作都是无UI的.有些需要确认("您确定要删除吗?").其他人需要更多信息.打开文件可能需要从"文件打开"对话框到完整的导入向导.

在MVVM应用程序中,编写需要用户输入的命令的最佳方法是什么?是否存在以某种方式通过依赖注入解决此问题的既定模式?我应该在代码隐藏中编写KeyDown处理程序,并让它显式执行事件吗?我应该回到RoutedUICommand,并将所有"显示下一个GUI"代码放在我的视图中吗?或者有什么明显的东西让我完全失踪?

Mar*_*ann 5

我通常使用依赖注入来注入某种抽象的 IShowTheInterface 东西,然后从 Command 内部调用抽象上的方法。然后,这些方法应该为您提供确定是否继续执行操作所需的答案,以及用户提供的输入。

I recently used this as an example in a blog post with a bit of a different topic.