2

我正在开发一个 WPF MVVM Light 应用程序,我想显示一些消息框/对话框,或者在其他一些场景中,我希望我的 View 模型与其视图进行通信或在其各自的视图上引发一些事件。

我怎么能做到这一点?

4

3 回答 3

2

请参阅 MVVM Light 的 Messenger 类。当你下载 MVVM light 时,它甚至应该默认有样本。它类似于 Messenger.Default.Send(new YourMessageClass()) ,您可以在视图端注册监听器。

于 2012-11-03T20:37:43.873 回答
1

prism 框架有一个交互请求的概念来解决这个问题。一个很好的例子可以在这里这里找到。

于 2012-11-03T20:34:57.963 回答
1

显示弹出窗口的责任不应该是 ViewModel 的责任,而是“为您处理它的服务”。

如果“弹出窗口”是类似于“文件打开对话框”、“文件保存对话框”、消息框“确定/取消”或“是/否”等窗口的模式,那么我相信“服务”将是正确的选择。原因是该服务可以被伪造/模拟以进行单元测试。

此外,您可以根据您的需要对该服务进行不同的实现:例如,在调试(r,当角色是管理员或开发人员类型时)您拥有比发布用户或普通用户更多的“详细”信息。

现在,对于“ViewModel 如何与 View 通信”,我不确定你的意思。只需在 ViewModel 上添加一个属性并将视图绑定到该属性。

于 2012-11-07T13:11:36.867 回答