J'ai essayé de construire une zone de texte avec un indice qui est l'affichage alors qu'il est vide. Je n'arrive pas à définir le texte de l'indice dans un style.WPF Bind à la propriété parent de l'intérieur élément imbriqué en utilisant le style
Pour être précis, ce fonctionne (qui est, il se lie correctement):
<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>
mais, quand je me déplace au style, il ne fait pas:
<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}" />
Alors, quel est le piège? Comment puis-je lier à une propriété ancêtre à l'intérieur d'un style?
Ok, ça a vraiment du sens ... J'ai passé trop vite dans les livres il me semble :) – veljkoz