Frage

Ich möchte ein Silverlight -Verhalten haben, das durch eine Änderung einer Eigenschaft im Ansichtsmodell für meine Seite ausgelöst wird. Ich kann jedoch nicht herausfinden, wie das geht.

Ich habe also ein sehr einfaches Ansichtsmodell:

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.......
}

Dieses Ansichtsmodell ist der Datenkontext für eine Benutzerkontrolle, die einen Textblock gebunden ist SomeProperty:

<TextBlock x:Key="myTextBlock" Text="{Binding SomeProperty}" />

Das alles funktioniert gut. Jetzt möchte ich ein Verhalten anbringen myTextBlock das wird durch Änderungen an ausgelöst ChangingProperty Meiner Ansichtsmodell. Das Verhalten sollte das hervorheben TextBlock, zum Beispiel (oder etwas ausgefeilteres).

Wie spreche ich diesen Auslöser an? Ist das überhaupt möglich?

Mit freundlichen Grüßen,

Ronald

War es hilfreich?

Lösung

Etwas in der Sicht meiner Antwort auf ein ähnliches Problem hier könnte helfen.

Hier ist ein Beispiel dafür, wie Sie diese Technik auf Ihre Anforderung anwenden können.

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top