Ho cercato di creare una casella di testo con un suggerimento che viene visualizzato quando è vuoto. Sto riscontrando problemi nell'impostazione del testo del suggerimento all'interno di uno stile.WPF Associazione alla proprietà padre dall'elemento nidificato utilizzando lo stile
Per essere precisi, questo funziona (vale a dire, si lega correttamente):
<TextBox Tag="hint text">
<TextBox.Background>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=TextBox}}" FontStyle="Italic" Foreground="LightGray" />
</VisualBrush.Visual>
</VisualBrush>
</TextBox.Background>
</TextBox>
ma, quando mi sposto allo stile, non è così:
<Style TargetType="TextBox" x:Key="stlHintbox">
<Style.Triggers>
<DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Mode=Self}}" Value="">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Tag="inner" Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=TextBox}}"
FontStyle="Italic" Foreground="LightGray" />
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<TextBox Tag="hint text" Style="{StaticResource stlHintbox}" />
Allora, qual è il trucco? Come posso legare la proprietà degli antenati all'interno di uno stile?
Ok, questo ha davvero senso ... Ho passato i libri troppo velocemente sembra :) – veljkoz