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

Était-ce utile?

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top