2009-08-30 14 views
2

Je souhaite que la propriété Foreground d'une zone de texte WPF soit rouge tant que sa propriété Text ne correspond pas à la propriété Text d'une autre Zone de texte sur le formulaire. Je peux accomplir cela dans le code derrière et à travers une liaison avec un convertisseur. Mais y a-t-il un moyen de le faire en XAML seulement? (Je pensais à un Trigger quelconque).WPF: comment modifier la couleur de premier plan d'une zone de texte en fonction de la propriété de texte d'un autre dans XAML?

Répondre

4

Non, vous avez besoin de code. Ce code pourrait être dans un convertisseur:

<TextBox x:Name="_textBox1"/> 
<TextBox Foreground="{Binding Text, ElementName=_textBox1, Converter={StaticResource ForegroundConverter}}"/> 

Ou dans un modèle de vue:

public string FirstText 
{ 
    //get/set omitted 
} 

public string SecondText 
{ 
    get { return _secondText; } 
    set 
    { 
     if (_secondText != value) 
     { 
      _secondText = value; 
      OnPropertyChanged("SecondText"); 
      OnPropertyChanged("SecondTextForeground"); 
     } 
    } 
} 

public Brush SecondTextForeground 
{ 
    get { return FirstText == SecondText ? Brushes.Red : Brushes.Black; } 
} 
+0

Merci, le code viewmodel est utile, je n'ai jamais rencontré le modèle avant. Je vais aller pour le convertisseur, cependant. – Dabblernl

Questions connexes