Comportement Silverlight basé sur la mise à jour de la propriété du modèle d'affichage
-
05-07-2019 - |
Question
J'aimerais que le comportement Silverlight soit déclenché par une modification d'une propriété dans le modèle d'affichage de ma page. Je n'arrive pas à comprendre comment faire cela, cependant.
J'ai donc un modèle de vue très simple:
public class MyViewModel : INotifyPropertyChanged
{
private bool changingProperty;
public bool ChangingProperty
{
get { return changingProperty; }
set
{
if (changingProperty != value)
{
changingProperty = value;
NotifyPropertyChanged("ChangingProperty");
}
}
}
public string SomeProperty { get { return "SomePropertyValue"; } }
// INotifyPropertyChanged implementation here.......
}
Ce modèle de vue est le contexte de données d'un contrôle utilisateur comportant un bloc de texte lié à SomeProperty
:
<TextBlock x:Key="myTextBlock" Text="{Binding SomeProperty}" />
Tout cela fonctionne bien. Maintenant, j'aimerais associer un comportement à myTextBlock
qui est déclenché par les modifications apportées à ChangingProperty
dans mon modèle de vue. Le comportement doit mettre en évidence le TextBlock
, par exemple (ou quelque chose de plus sophistiqué).
Comment spécifier ce déclencheur? Est-ce possible?
Cordialement,
Ronald
La solution
Quelque chose dans le sens de ma réponse à un problème similaire ici pourrait aide.
Voici un exemple d'application de cette technique à votre besoin.
<Grid.Resources>
<local:BoolToBrushConverter x:Key="Highlighter"
FalseBrush="Transparent" TrueBrush="Yellow" />
</Grid.Resources>
<Border Background="{Binding ChangingProperty, Converter={StaticResource Highlighter}}">
<TextBlock x:Name="txtTarget" Text="{Binding SomeProperty}" />
</Border>