我可以在WPF和Prism中的自定义TriggerAction中使用di容器创建视图吗

本文关键字:di 视图 创建 TriggerAction WPF Prism 自定义 我可以 | 更新日期: 2023-09-27 18:19:35

例如,我想开发一个可以弹出自定义窗口的PopupWindowAction。

        <prism:InteractionRequestTrigger SourceObject="{Binding OpenMyCutomDialog}">
            <prism:PopupMyCutomDialogAction IsModal="True">
            </prism:PopupMyCutomDialogAction>
        </prism:InteractionRequestTrigger>

MyCutomDialogView是一个窗口,但它有一些构造函数参数。我认为使用di容器来创建它应该是一个很好的做法

public class PopupMyCutomDialogAction : TriggerAction<FrameworkElement>
{
    protected override void Invoke(object parameter)
    {
        // how to access container and create MyCutomDialog?
    }
}

如何使用di容器创建MyCutomDialog?(在这种情况下,我们只使用全局变量来访问PopupMyCutomDialogAction中的di容器?)

非常感谢。

我可以在WPF和Prism中的自定义TriggerAction中使用di容器创建视图吗

如果您想使用DI容器来解析自定义触发器操作中的对象,您可以使用ServiceLocator来执行此操作;

ServiceLocator.Current.GetInstance<MyServie>();