我可以在 WPF 和 Prism 的自定义 TriggerAction 中使用 di-container 创建视图吗?
Can I create view with di-container in custom TriggerAction in WPF and Prism?
举个例子,
我想开发一个可以弹出自定义 window.
的 PopupWindowAction
<prism:InteractionRequestTrigger SourceObject="{Binding OpenMyCutomDialog}">
<prism:PopupMyCutomDialogAction IsModal="True">
</prism:PopupMyCutomDialogAction>
</prism:InteractionRequestTrigger>
MyCutomDialogView 是一个 Window,但它有一些构造函数参数。我认为使用 di-container 来创建它应该是一个很好的做法。
public class PopupMyCutomDialogAction : TriggerAction<FrameworkElement>
{
protected override void Invoke(object parameter)
{
// how to access container and create MyCutomDialog?
}
}
如何使用di-container创建MyCutomDialog?
(在这种情况下,我们只使用全局变量来访问 PopupMyCutomDialogAction 中的 di-container?)
非常感谢。
如果您想使用 DI 容器来解析自定义触发器操作中的对象,您可以使用 ServiceLocator 来实现;
ServiceLocator.Current.GetInstance<MyServie>();
举个例子, 我想开发一个可以弹出自定义 window.
的 PopupWindowAction <prism:InteractionRequestTrigger SourceObject="{Binding OpenMyCutomDialog}">
<prism:PopupMyCutomDialogAction IsModal="True">
</prism:PopupMyCutomDialogAction>
</prism:InteractionRequestTrigger>
MyCutomDialogView 是一个 Window,但它有一些构造函数参数。我认为使用 di-container 来创建它应该是一个很好的做法。
public class PopupMyCutomDialogAction : TriggerAction<FrameworkElement>
{
protected override void Invoke(object parameter)
{
// how to access container and create MyCutomDialog?
}
}
如何使用di-container创建MyCutomDialog? (在这种情况下,我们只使用全局变量来访问 PopupMyCutomDialogAction 中的 di-container?)
非常感谢。
如果您想使用 DI 容器来解析自定义触发器操作中的对象,您可以使用 ServiceLocator 来实现;
ServiceLocator.Current.GetInstance<MyServie>();