Как привязать к TemplatedParent из DataTemplate, определенного в стиле?

Я разрабатываю пользовательский элемент управления, полученный из файла ItemsControl. В файле generic.xaml я создал стиль для этого элемента управления, а также определил ItemTemplate:

<Style TargetType="local:MyItemsControl">
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <Border Background="Red">
                    <!-- Other things in here -->
                </Border>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

Я хочу связать свойство Background Border в DataTemplate со свойством зависимостей MyItemsControl.

Если здесь найдено несколько вопросов, предлагающих использовать имя элемента MyItemsControl в привязке, но это работает только при определении ItemTemplate, где используется элемент управления. Я также попытался привязаться к RelativeSource, определяя local:MyItemsControl как тип предка.

Ничего не сработало. Что мне здесь не хватает?


person Spontifixus    schedule 29.08.2013    source источник
comment
В ControlTemplate вы можете использовать TemplateBinding. Но это доступно только в ControlTemplates... Я бы попробовал путь предка.   -  person MVCible    schedule 29.08.2013
comment
Я пробовал это - но не мог заставить его работать. Так что либо это не работает, либо я ошибся...   -  person Spontifixus    schedule 29.08.2013


Ответы (1)


Каков тип этого DependencyProperty? Это Brush или string? Этот простой код работает для меня:

Background="{Binding Name, RelativeSource={RelativeSource AncestorType=ItemsControl}}" 

Просто для теста здесь я привязываю свойство Name элемента ItemsControl, которое имеет значение «Желтый», и оно работает.

person icebat    schedule 30.08.2013