我正在开发一个 WPF MVVM Light 应用程序,我想显示一些消息框/对话框,或者在其他一些场景中,我希望我的 View 模型与其视图进行通信或在其各自的视图上引发一些事件。
我怎么能做到这一点?
我正在开发一个 WPF MVVM Light 应用程序,我想显示一些消息框/对话框,或者在其他一些场景中,我希望我的 View 模型与其视图进行通信或在其各自的视图上引发一些事件。
我怎么能做到这一点?
请参阅 MVVM Light 的 Messenger 类。当你下载 MVVM light 时,它甚至应该默认有样本。它类似于 Messenger.Default.Send(new YourMessageClass()) ,您可以在视图端注册监听器。
显示弹出窗口的责任不应该是 ViewModel 的责任,而是“为您处理它的服务”。
如果“弹出窗口”是类似于“文件打开对话框”、“文件保存对话框”、消息框“确定/取消”或“是/否”等窗口的模式,那么我相信“服务”将是正确的选择。原因是该服务可以被伪造/模拟以进行单元测试。
此外,您可以根据您的需要对该服务进行不同的实现:例如,在调试(r,当角色是管理员或开发人员类型时)您拥有比发布用户或普通用户更多的“详细”信息。
现在,对于“ViewModel 如何与 View 通信”,我不确定你的意思。只需在 ViewModel 上添加一个属性并将视图绑定到该属性。