В моем окне есть несколько элементов управления GroupBox, каждый из которых содержит элемент управления сеткой. Этим сеткам я хочу назначить стиль. Но только для тех сеток, которые находятся непосредственно в GroupBox, все остальные сетки не должны быть затронуты.
Я пробовал следующее, но это не работает, поскольку GetType () не является свойством.
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Parent.GetType()}" Value="{x:Type GroupBox}">
<!-- <Setter Property="..." Value="..."/> -->
</DataTrigger>
</Style.Triggers>
</Style>
Я нашел обходной путь, но это не совсем красивое решение, так как мне нужно изменить GroupBoxes:
<Style TargetType="GroupBox">
<Setter Property="Tag" Value="blub"/>
</Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Parent.Tag, RelativeSource={RelativeSource Mode=Self}}" Value="blub">
<!-- <Setter Property="..." Value="..."/> -->
</DataTrigger>
</Style.Triggers>
</Style>
Очевидно, я мог бы установить стиль для каждой сетки вручную, но я стараюсь этого избежать, так как их довольно много. Надеюсь, вы найдете способ заставить первый пример работать.