gpt4 book ai didi

c# - 使用 Unity BootStrapper 和 Prsim 将参数传递给 Shell Viewmodel

转载 作者:行者123 更新时间:2023-12-03 10:32:22 25 4
gpt4 key购买 nike

我创建了一个使用界面显示自定义对话框/确认框的对话框服务(我知道 Prism 具有此功能,但对话框似乎不可自定义,并且与我的布局/配色方案不匹配)。对话服务有一个注册函数,可以在字典中注册对话 View 类型和对话 View 模型类型。这样做是为了可以传入 View 模型,并且可以以松散耦合的方式创建所需 View 的实例。代码如下所示:

    private readonly IDialogService dialogService = new DialogService(Application.Current.MainWindow);

// Registers the confirmation window viewmodel with the confirmation window view
dialogService.Register<ConfirmationWindowViewModel, ConfirmationWindow>();

所以我最初的想法是尝试在统一 Bootstrap 中创建它(因为注册传递了 View 和 View 模型),但我似乎无法找到一种方法来做到这一点并传递对话服务。

我必须注意,主窗口 View 模型的构造函数还为 Prism 注入(inject)了区域管理器和事件聚合器;我曾尝试在 Bootstrap 中创建一个实例并注册该实例,但创建区域管理器与注入(inject)会导致错误。如果我在主窗口 View 模型中声明并初始化对话服务,它当然可以工作,但根据我对 MVVM 的理解,我们不希望 View 模型对 View 有任何了解,所以我试图找到另一种方法来做到这一点,不会破坏区域经理和事件聚合器的 IoC。

我是 MVVM 和 Prism/Unity 的新手,所以我对这些概念的掌握还没有完全巩固。

最佳答案

I know that Prism comes with this ability but the dialog boxes don't appear to be customizable and don't match my layout/color scheme



您可以创建任何您喜欢的对话框,只需从 PopupWindowAction 派生即可。并覆盖 CreateWindow (以及其他需要的方法)来创建您一直想要的对话框。

关于c# - 使用 Unity BootStrapper 和 Prsim 将参数传递给 Shell Viewmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52797549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com