Bonjour à tous,
Je bute sur un petit problème au niveau des styles.
J'ai un textblock qui est bindé à une propriété d'un objet. Celle ci peut être "null".
Je voudrais afficher un texte par défaut et modifier le style de celui ci quand celle ci est "null" ou alors quand la string est vide.
J'ai essayé de faire ceci:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <TextBlock Text="{Binding Path=Adresse, Mode=OneWay}"> <TextBlock.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding Path=Adresse, Mode=OneWay}" Value=""> <Setter Property="TextBlock.Foreground" Value="#666666"/> <Setter Property="TextBlock.FontStyle" Value="Italic" /> <Setter Property="TextBlock.Text" Value="Non renseigné" /> </DataTrigger> <DataTrigger Binding="{Binding Path=Adresse, Mode=OneWay}" Value="{x:Null}"> <Setter Property="TextBlock.Foreground" Value="#666666"/> <Setter Property="TextBlock.FontStyle" Value="Italic" /> <Setter Property="TextBlock.Text" Value="Non renseigné" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock>
Hors je n'ai jamais le texte "Non renseigné" qui apparait alors que les valeurs sont bien à "null".
La preuve si je fait {Binding Path=Adresse, Mode=OneWay, TargetNullValue=Empty}, j'ai la propriété "Text" qui affiche "Empty" et qui prend le style défini dans le DataTrigger.
1) Pourtant le Text en question n'est plus null puisque il est à "Empty", il ne devrait donc pas prendre le style si?
2) Comment se fait il que je ne puisse pas modifier le texte via le DataTrigger, parceque je suis bindé sur cette propriété?
Merci d'avance.
Partager