Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PRISM模块化应用程序中WPF视图模型的调用消息警报_C#_Wpf_Mvvm_Telerik_Prism - Fatal编程技术网

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

C# PRISM模块化应用程序中WPF视图模型的调用消息警报,c#,wpf,mvvm,telerik,prism,C#,Wpf,Mvvm,Telerik,Prism,我们是新的窗口应用程序,我们正在开发一个基于WPF的窗口应用程序。我们正在使用MVVM架构模式和PRISM框架。我们使用Telerik控件为应用程序创建了丰富的UI 我们已经在PRISM中开发了模块化应用程序,如所示。 在这里,我们有一个主要的应用程序将有引导类和所有子模块的引用 当用户执行的某些操作完成时,我们希望调用警报框。我们想从许多不同页面的视图模型中调用此警报框,其中一些存在于子模块中,少数存在于具有引导程序的主应用程序中 我们想要设计一个通用的警报控件,它可以跨应用程序使用 在之前下

我们是新的窗口应用程序,我们正在开发一个基于WPF的窗口应用程序。我们正在使用MVVM架构模式和PRISM框架。我们使用Telerik控件为应用程序创建了丰富的UI

我们已经在PRISM中开发了模块化应用程序,如所示。 在这里,我们有一个主要的应用程序将有引导类和所有子模块的引用

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

我们想要设计一个通用的警报控件,它可以跨应用程序使用

在之前下载的WPF的PRISM示例中,有一个代码示例,用于从ViewModel调用弹出窗口,如本文所述

但新的Prism版本中不再存在此功能。此外,Github上的Dialog Service的新功能也没有示例应用程序

现在,我们知道“交互”已被文档所取代,我们在主应用程序中创建了自定义警报,但我们如何在所有子模块中使用此警报

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

如何从其他模块调用它

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

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


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

您的问题到底是什么?为什么您认为您不能在视图模型中使用对话框服务?这一切与模块有什么关系?@Haukinger我可以在视图模型中使用对话框服务。感染我们知道这是实现的方式我的问题是我们如何设计对话服务,以便我们可以在所有子模块和主应用程序中使用它?这就像设计和注册一次,然后在所有其他应用程序中使用它。我们可以在哪里设计和注册它,以及如何从其他模块调用它?谢谢Haukinger获得了如何实现对话服务的想法用你的答案回答这个问题。