Итак, я создаю пользовательский интерфейс в Visual Studio, и из-за всех повторяющихся элементов я использую много элементов в разделе «Ресурсы» моего пользовательского контроля. То, что я пытаюсь сделать, это перебрать элементы, используя другой файл StaticResource
в качестве шаблона для элементов.XAML и Caliburn.Micro MVVM: ресурс стиля, ссылающийся на другой ресурс стиля в шаблоне данных
Проблема в том, что 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>
Спасибо!
Другой вопрос, как бы я добраться до 'Style' элемента в элемент' '? Это так просто, как просто использовать «Path = DataContext.Resources.Person_Template»? Или есть другой путь доступа, который мне нужно использовать? –
Saxophlutist
Редактировать: Я понял это. Это должно быть 'Path = Resources [Person_Template]' – Saxophlutist
Не могли бы вы использовать {StaticResource Person_Template} вместо привязки? – Frank