Стили WPF применяются только к корневому элементу с использованием dataTrigger
Я столкнулся с проблемой со стилями WPF.
В корне userControl у меня есть ресурс, определенный следующим образом:
<UserControl.Resources>
<Style TargetType="{x:Type MyControl}">
<Setter Property="MyControl.AAA" Value="Value1" />
</Style>
</UserControl.Resources>
Это прекрасно работает, оно влияет на все элементы MyControl во всей иерархии визуального дерева.
Если я попытаюсь изменить сеттер с помощью DataTrigger, вот так:
<UserControl.Resources>
<Style TargetType="{x:Type MyControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value1">
<Setter Property="MyControl.AAA" Value="Value1" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value2">
<Setter Property="MyControl.AAA" Value="Value2"/>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
Стиль применяется только к корневому элементу определенного типа MyControl.
Кто-нибудь может объяснить мне, почему это происходит и как я могу применить стиль ко всем конкретным элементам через DataTriggers?
Большое спасибо за любую помощь. Ондра
1 ответ
Я не уверен, почему это происходит, но, возможно, вы можете найти больше информации здесь. Это, конечно, только в том случае, если свойство, которое вы устанавливаете для MyControl.AAA, является DependecyProperty.
Следующий абзац под изображениями должен объяснить больше.