2015-09-29 2 views
0

У меня есть несколько списков в моем XAML. Прежде чем у меня появится этот код ниже:Можно ли выбрать имя AncestorType в XAML

<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" Value="True"> 
            <Setter TargetName="Rectangle" Property="Fill" Value="Red"/> 
           </DataTrigger> 

Можно ли ссылаться на другой список ListBox? Я называю мой второй ListBox так:

x:Name="HappyBox" 

Как изменить верхнюю строку кода для ссылки только ListBox с именем «HappyBox»

Если какой-либо вопрос, пожалуйста, спросите

ответ

2

Если элемент управления с именем , вам не нужно указывать тип с помощью AncestorType, вы можете просто использовать ElementName.

<DataTrigger Binding="{Binding IsSelected, ElementName=HappyBox}" Value="True"> 
    <Setter TargetName="Rectangle" Property="Fill" Value="Red"/> 
</DataTrigger> 

Как этот

+0

Моя проблема также, что у меня есть ListBox в других NameScope, так что я не могу найти свой HappyBox в ElementName. Есть ли какое-нибудь решение? Как это получить? – esispaned

+0

Но у вас есть этот «HappyBox» у родителей вашего контроля в VisualTree, не так ли? – maiksaray

+0

Нет :) Я обновляю свой код. Поэтому у меня есть два списка: один - это x: Name = «LstBox» и второй «SldBox». Где-то есть «local: SliderNode». В «local: SliderNode» я определил «AncestorType = {x: Type ListBoxItem}». Я не определил все элементы ListBoxItems, но только SldBox. Я разрешу это дочерние отношения с родителями? – esispaned