Hallo,
ich habe in Window.Resources einen Style für GroupBox definiert.
Nun möchte ich im Window einer bestimmten GroupBox einen DataTrigger hinzufügen, also muss ich noch einen Style in der GroupBox definieren. Somit greift aber der Style in Window.Resources nicht mehr.
In Zeile 13 probiere ich mit BasedOn von dem Style in Window.Resources zu erben, klappt aber nicht.
<Window.Resources>
<Style x:Key="GroupBoxWindow" TargetType="GroupBox" BasedOn="{StaticResource GroupBoxBase}">
<Setter Property="BorderThickness" Value="0"/>
<Style.Triggers>
<Trigger Property="Control.IsEnabled" Value="False">
<Setter Property="Control.Foreground" Value ="#FF6D6D6D" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<GroupBox>
<GroupBox.Style>
<Style BasedOn="{StaticResource GroupBoxWindow}">
<Style.Triggers>
<DataTrigger Binding ="{Binding ElementName=lst_Clients, Path=SelectedIndex}" Value="-1">
<Setter Property="GroupBox.IsEnabled" Value="false"/>
</DataTrigger>
</Style.Triggers>
</Style>
</GroupBox.Style>
</GroupBox>
Was mache ich hier falsch? Kann wer helfen?
Schreibe mal
TargetType="GroupBox"
in dem GroupBox-Style mit rein.
Vielen Dank, genau das hat gefehlt.
Jetzt frag ich mich warum ich hier noch den TargetType angeben muss obwohl ich den Style direkt in einer GroupBox definiere.
Gibt es denn einen Anwendungsfall wo der TargetType anders sein soll als in dem Type wo man den Style definiert?
Gruß
EDIT sagt, dass das Quatsch ist. X(
Du setzt ja im Endeffekt nur die Property Style
der GroupBox, er weiß allerdings nicht automatisch, dass der Style dann für eine GroupBox genutzt werden soll.
Bei einem xy Control wird bei der Style Eigenschaft ein Style erwartet, der diesem Control oder seiner Vorfahren entspricht.
Darum muss man immer explizit den TargetType angeben.