Стиль DataTrigger со ссылкой на Тип родительского элемента управления

В моем окне есть несколько элементов управления 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>

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

8
задан Mugiwara 2 June 2018 в 05:42
поделиться