繁体   English   中英

从 WPF 呼叫消息警报 在 PRISM 模块化应用程序中查看 Model

[英]Call Message Alert from WPF View Model in PRISM Modular Application

我们是 Window 应用程序的新手,我们正在开发基于 WPF 的 window 应用程序。 我们使用 MVVM 架构模式和 PRISM 框架。 我们使用 Telerik 控件为应用程序制作了丰富的 UI。

我们在 PRISM 中开发了模块化应用程序,如WPF-07 应用程序的 Prism 示例所示。 在此我们有一个主要应用程序将拥有引导程序 class 和所有子模块的参考。

当用户执行的某些操作完成时,我们想调用警报框。 我们想从许多不同页面的 model 视图中调用此警报框,其中一些存在于子模块中,而少数存在于具有引导程序的主应用程序中。

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

在之前下载的 WPF 的 PRISM 示例中,它具有从 ViewModel 调用的弹出窗口 windows 的代码示例,如此堆栈溢出问题中所述。

但是这个功能在新的 Prism 版本中不再存在。 此外,Github 上对话服务的新功能不存在示例应用程序。

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

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

如何从其他模块调用它?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM