从 PRISM 模块化应用程序中的 WPF 视图模型调用消息警报

Call Message Alert from WPF View Model in PRISM Modular Application

我们是 Window 应用程序的新手,我们正在开发基于 WPF 的 window 应用程序。我们正在使用 MVVM 架构模式和 PRISM 框架。我们已经使用Telerik控件来发财UI应用

我们已经在 PRISM 中开发了模块化应用程序,如 Prism Sample For WPF-07 Applications 所示。 在此我们有一个主要应用程序将具有 Bootstrapper class 和所有子模块的引用。

我们想在用户执行的某些操作完成时调用警告框。我们想从许多不同页面的视图模型中调用此警告框,一些出现在子模块中,很少出现在具有引导程序的主应用程序中。

我们想设计可以跨应用程序使用的通用警报控件。

在之前下载的 WPF PRISM 示例中,它有弹出窗口的代码示例 windows 从 ViewModel 调用,如本 中所述。

但是这个功能在新的棱镜版本中不再存在。 Github.

上的对话服务的新功能也没有示例应用程序

我们现在知道 'Interaction' 已被 DialogService 取代,并且按照我们在主应用程序中创建自定义警报的文档,但我们如何在所有子模块中使用此警报?

我们如何设计可从所有模块访问的自定义通用警报? 请帮助我们实现这个通用功能。

how to call it from other modules?

当服务(如 DialogService)注册到容器时,它将被注入所有请求它作为依赖项的构造函数(如果这些构造函数是从容器中解析的)。

这对 public MyViewModel( IDialogService dialogService ) { ... } 有效,无论 MyViewModel 的代码位于何处,只要它被容器调用。无论它位于何处,视图模型都必须链接到它的视图(通过命名约定或显式调用)以供视图模型定位器找到(因此由框架“神奇地”创建) 你必须自己解决它(例如,通过注入 Func< MyViewModel> 或手工编码的工厂,或者 - 不要这样做 - 通过注入容器或 - 也避免这种情况 - 通过调用 new 并自己提供依赖项)。

对于在主应用程序中定义的视图模型和在模块中定义的视图模型,所有这些工作方式完全相同。