WPF,C#:弹出窗口创建问题的多个声明

时间:2016-01-09 03:03:25

标签: c# wpf popup prism region

我有一个使用弹出窗口的Prism WPF应用程序。在多个地方需要相同的功能,所以我的弹出窗口是这样引用的。

<i:Interaction.Triggers>
    <interactionRequest:InteractionRequestTrigger SourceObject="{Binding CreateCatalogsRequest, Mode=OneWay}">
        <interactionRequest:PopupWindowAction>
            <interactionRequest:PopupWindowAction.WindowContent>

                <!-- Problem line below -->
                <view:SomePopUpView />

            </interactionRequest:PopupWindowAction.WindowContent>
        </interactionRequest:PopupWindowAction>
    </interactionRequest:InteractionRequestTrigger>
</i:Interaction.Triggers>

目前,两个控件中出现了完全相同的代码片段。当我注释掉代码,或用标准组件(Combobox)替换“SomePopupView”时,我的应用程序可以工作。当我有两次引用相同的组件(SomePopupView)时,我的应用程序会抱怨区域。

我不想重写或扩展或执行任何架构巫术,但如何在应用的不同部分获得相同的弹出功能?

非常感谢任何帮助

编辑 AnjumSKhan提供的解决方案有效。我的解决方案如下

的App.xaml

<Application.Resources>
    <view:SomePopupView x:Key="SomePopupView" />
    ....
<Application.Resources>

使用重复的弹出式视图

<i:Interaction.Triggers>
    <interactionRequest:InteractionRequestTrigger SourceObject="{Binding CreateRequestInteraction, Mode=OneWay}">
        <interactionRequest:PopupWindowAction>
            <interactionRequest:PopupWindowAction.WindowContent>
                <ContentControl Content="{StaticResource SomePopupView}"></ContentControl>
            </interactionRequest:PopupWindowAction.WindowContent>
        </interactionRequest:PopupWindowAction>
    </interactionRequest:InteractionRequestTrigger>
</i:Interaction.Triggers>

1 个答案:

答案 0 :(得分:0)

解。

的App.xaml

<Application.Resources>
    <view:SomePopupView x:Key="SomePopupView" />
    ....
<Application.Resources>

使用重复的弹出式视图

<i:Interaction.Triggers>
    <interactionRequest:InteractionRequestTrigger SourceObject="{Binding CreateRequestInteraction, Mode=OneWay}">
        <interactionRequest:PopupWindowAction>
            <interactionRequest:PopupWindowAction.WindowContent>
                <ContentControl Content="{StaticResource SomePopupView}"></ContentControl>
            </interactionRequest:PopupWindowAction.WindowContent>
        </interactionRequest:PopupWindowAction>
    </interactionRequest:InteractionRequestTrigger>
</i:Interaction.Triggers>