【发布时间】:2023-03-15 10:15:01
【问题描述】:
我创建了一个对话服务,使用界面显示自定义对话框/确认框(我知道 Prism 具有此功能,但对话框似乎无法自定义,并且与我的布局/配色方案不匹配) .对话服务有一个注册函数,可以在字典中注册对话视图类型和对话视图模型类型。这样做是为了可以传入视图模型,并且可以以松散耦合的方式创建所需视图的实例。代码如下所示:
private readonly IDialogService dialogService = new DialogService(Application.Current.MainWindow);
// Registers the confirmation window viewmodel with the confirmation window view
dialogService.Register<ConfirmationWindowViewModel, ConfirmationWindow>();
所以我最初的想法是尝试在统一引导程序中创建它(因为注册会传入视图和视图模型),但我似乎找不到这样做的方法并传入对话服务。
我必须注意,主窗口视图模型的构造函数还为 Prism 注入了区域管理器和事件聚合器;我曾尝试在引导程序中创建一个实例并注册该实例,但创建区域管理器与注入会导致错误。如果我在主窗口视图模型中声明并初始化对话服务,它当然可以工作,但根据我对 MVVM 的理解,我们不希望视图模型对视图有任何了解,所以我试图找到另一种方法来做到这一点,不会破坏区域经理和事件聚合器的 IoC。
我是 MVVM 和 Prism/Unity 的新手,所以我对这些概念的理解还没有完全巩固。
【问题讨论】:
标签: c# unity3d mvvm prism bootstrapper