XAML 和 Caliburn.Micro MVVM:引用数据模板中另一个样式资源的样式资源

XAML and Caliburn.Micro MVVM: Style resource referencing another style resource in a data template

因此,我在 Visual Studio 中创建了一个 UI,由于所有重复的元素,我在用户控件的资源部分使用了很多元素。我想要做的是使用文件中的另一个 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>

谢谢!

您只需为您的 UserControl 命名,例如“root”,然后使用 ElementName:

进行绑定
<ContentControl Style="{Binding ElementName=root,Path=DataContext.WhateverProperty}" />