C# PRISM模块化应用程序中WPF视图模型的调用消息警报
我们是新的窗口应用程序,我们正在开发一个基于WPF的窗口应用程序。我们正在使用MVVM架构模式和PRISM框架。我们使用Telerik控件为应用程序创建了丰富的UI 我们已经在PRISM中开发了模块化应用程序,如所示。 在这里,我们有一个主要的应用程序将有引导类和所有子模块的引用 当用户执行的某些操作完成时,我们希望调用警报框。我们想从许多不同页面的视图模型中调用此警报框,其中一些存在于子模块中,少数存在于具有引导程序的主应用程序中 我们想要设计一个通用的警报控件,它可以跨应用程序使用 在之前下载的WPF的PRISM示例中,有一个代码示例,用于从ViewModel调用弹出窗口,如本文所述 但新的Prism版本中不再存在此功能。此外,Github上的Dialog Service的新功能也没有示例应用程序 现在,我们知道“交互”已被文档所取代,我们在主应用程序中创建了自定义警报,但我们如何在所有子模块中使用此警报 我们如何设计可从所有模块访问的自定义通用警报? 请帮助我们实现此通用功能 如何从其他模块调用它 当服务(如C# PRISM模块化应用程序中WPF视图模型的调用消息警报,c#,wpf,mvvm,telerik,prism,C#,Wpf,Mvvm,Telerik,Prism,我们是新的窗口应用程序,我们正在开发一个基于WPF的窗口应用程序。我们正在使用MVVM架构模式和PRISM框架。我们使用Telerik控件为应用程序创建了丰富的UI 我们已经在PRISM中开发了模块化应用程序,如所示。 在这里,我们有一个主要的应用程序将有引导类和所有子模块的引用 当用户执行的某些操作完成时,我们希望调用警报框。我们想从许多不同页面的视图模型中调用此警报框,其中一些存在于子模块中,少数存在于具有引导程序的主应用程序中 我们想要设计一个通用的警报控件,它可以跨应用程序使用 在之前下
DialogService
)在容器中注册时,如果从容器中解析,它将被注入所有请求它作为依赖项的构造函数中
这适用于publicMyViewModel(IDialogService dialogService){…}
,无论MyViewModel
的代码位于何处,只要它是由容器调用的。无论视图模型位于何处,视图模型都必须链接到其视图(通过命名约定或显式调用)才能被视图模型定位器找到(从而由框架“神奇地”创建),或者您必须自己解决它(例如,通过注入Func
或手动编码工厂,或者-不要这样做-注入容器,或者-也要避免这样做-调用new
并自己提供依赖项)
对于主应用程序中定义的视图模型和模块中定义的视图模型,所有这些都以完全相同的方式工作。您的问题到底是什么?为什么您认为您不能在视图模型中使用对话框服务?这一切与模块有什么关系?@Haukinger我可以在视图模型中使用对话框服务。感染我们知道这是实现的方式我的问题是我们如何设计对话服务,以便我们可以在所有子模块和主应用程序中使用它?这就像设计和注册一次,然后在所有其他应用程序中使用它。我们可以在哪里设计和注册它,以及如何从其他模块调用它?谢谢Haukinger获得了如何实现对话服务的想法用你的答案回答这个问题。