我喜欢 MVVM 中的 RelayCommand 的想法,它由 ViewModel 公开。这很好和优雅,适用于无需进一步用户输入即可完成的操作。简单明了。易于测试。
但是,并非所有操作都没有 UI。有些需要确认("确定要删除吗?"),而其他一些则需要更多信息。打开文件可能涉及从 File Open 对话框到完整的导入向导的任何内容。
在 MVVM 应用程序中,编写需要用户输入的命令的最佳方法是什么?是否有已经建立的模式可以通过依赖注入来解决此问题?我应该在代码后台编写 KeyDown 处理程序,并明确执行事件吗?应该回退到 RoutedUICommand 并将所有“显示下一个 GUI”代码放在我的 View 中吗?还是有什么明显的东西我完全错过了?