我为prism的InteractionRequestTrigger
设置了触发器动作,看起来像这样:
<prism:InteractionRequestTrigger SourceObject="{Binding MyRequest}" >
<infInt:PopupWindowAction>...
</infInt:PopupWindowAction>
</prism:InteractionRequestTrigger>
现在我想将PopupWindowAction
提取到一个静态资源中,所以看起来像这样:
<Window.Resources>
<infInt:PopupWindowAction x:Key="Foo" >
...
</infInt:PopupWindowAction>
</Window.Resources>
<prism:InteractionRequestTrigger SourceObject="{Binding MyRequest}" >
--- use the resource Foo ---
</prism:InteractionRequestTrigger>
如何在那里使用带有密钥Foo的静态资源?
通过反映InteractionRequestTrigger
我发现其内容属性设置为System.Windows.Interactivity.TriggerBase
至[ContentProperty("Actions")]
但由于它只有一个getter,我不能使用Actions作为参数来设置foo:
<prism:InteractionRequestTrigger Actions="{StaticResource Foo}" SourceObject="{Binding MyRequest}" />
错误1属性&#34;操作&#34;没有可访问的二传手 错误3&#39;操作&#39; property是只读的,不能通过标记设置。
如何使用Foo
?
答案 0 :(得分:1)
解决方案非常简单。使用StaticResourceExtension类。
<i:Interaction.Triggers>
<prism:InteractionRequestTrigger SourceObject="{Binding MyRequest}">
<StaticResource ResourceKey="Foo"/>
</prism:InteractionRequestTrigger>
</i:Interaction.Triggers>