Привязка от триггера к объекту в коллекции - PullRequest
0 голосов
/ 25 января 2012

У меня есть объект со следующими свойствами:

1

IsLightOnVal - это коллекция с 2 полями: строка для имени государства и Bool для значения, как мы видим на 2-м рисунке:

2

В ControlTemplate моего объекта я хочу создать триггер для: когда значение моего первого объекта в моей коллекции равно true, тогда сделайте это ...

Я могу легко получить доступ из своего имущества IsLightOnVal1 и IsLightOnVal1 первого изображения, но я не могу получить доступ к своей коллекции.

Так что это работает нормально:

<Trigger Property="IsLightOnVal1" Value="True">
    <Setter Property="Foreground" TargetName="tkValue1" Value="{StaticResource Amber}"/>
</Trigger>

Но когда я пытаюсь что-то с коллекцией, у меня никогда нет доступа, я пробовал:

<Trigger Property="{Binding IsLightOnVal[0].Value, RelativeSource={RelativeSource AncestorType=NameSpace:MyObject}}" Value="True">
    <Setter Property="Foreground" TargetName="tkValue1" Value="{StaticResource Amber}"/>
</Trigger>

Но свойство триггера, похоже, не принимает привязки ...

У кого-нибудь есть решение?

1 Ответ

2 голосов
/ 25 января 2012

Обычный Triggers предназначен для использования в свойствах элемента пользовательского интерфейса. Если вы хотите основать триггер на связанном значении, вам нужно использовать DataTrigger

<DataTrigger Binding="{Binding IsLightOnVal[0].Value, RelativeSource={RelativeSource AncestorType=NameSpace:MyObject}}" Value="True">
    <Setter Property="Foreground" TargetName="tkValue1" Value="{StaticResource Amber}"/>
</DataTrigger>
...