使用MVVM Foundation Messenger显示对话框

sen*_*nfo 4 wpf dialog mvvm mvvm-foundation messenger

我正在构建一个WPF应用程序并尝试符合MVVM最佳实践.我正在使用MVVM Foundation框架,并注意到我读过的Messenger类应该用于处理WPF中的对话框.这听起来很棒,但我完全不了解如何使用Messenger来实现此目的.从字面上看,我想要做的就是打开一个模态关于对话框 - 我不需要来回传递任何消息.

Messenger类的目的是用于对话框需要来自其父级的消息,还是将消息返回给其父级的情况?关于对话框是否有点过分?如果只是将代码添加到事件处理程序以显示对话框,我会更好吗?

Bra*_*ham 5

消息传递模式背后的想法与显示对话框没有任何关系.这个想法只是提供一种在ViewModel之间进行通信的分离方式.

您可以利用此基础结构来解决您的问题,但您必须自己实现对话框的显示.

正如Phillip所示,您可以在ViewModels之间发送消息.当您的ViewModel收到消息时,它可以将其自己的内部属性(例如"ShowDialog")设置为true.

然后,您可以拥有一个响应此属性更改操作的绑定并打开一个对话框.

我还为MVVM模式构建了一个简单的消息传递框架,借鉴了Josh的想法(以及其他一些现有的框架),你可以在这里阅读它