所以,我在Visual Studio中创建了一个UI,由于所有重复的元素,我在用户控件的Resources部分使用了很多元素。我尝试做的是使用文件中的另一个StaticResource
作为项目的模板来迭代项目。
问题在于Datatemplate
当然是将DataContext
切换到它迭代的项目。所以我试图弄清楚如何获取静态资源的上下文,这是在UserControl
的上下文中。我考虑使用相对采购,但后来意识到StaticResource
没有该选项,只允许您访问上下文的资源。
有关该怎么做的任何建议?
<Style TargetType="ItemsControl" x:Key="BeneficiaryList">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Expander Header="{Binding Name_1}">
<Expander.Resources>
<utils:BindingProxy x:Key="proxy" Data="{Binding}"/>
</Expander.Resources>
<!--Attempt at a proxy binding to access another style resource in the file. Does not work.-->
<ContentControl Style="{StaticResource proxy.Person_Template}"/>
</Expander>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
谢谢!
答案 0 :(得分:0)
你只需给你的UserControl一个名字,例如“root
”,然后使用ElementName
绑定:
<ContentControl Style="{Binding ElementName=root,Path=DataContext.WhateverProperty}" />