Поведение Silverlight на основе обновления свойства модели представления - PullRequest
2 голосов
/ 26 ноября 2009

Мне бы хотелось иметь поведение Silverlight, которое вызывается изменением свойства в модели представления для моей страницы. Однако я не могу понять, как это сделать.

Итак, у меня очень простая модель просмотра:

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

Эта модель представления является контекстом данных для пользовательского элемента управления, текстовый блок которого связан с SomeProperty:

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

Это все отлично работает. Теперь я хотел бы прикрепить поведение к myTextBlock, которое вызывается изменениями в ChangingProperty в моей модели представления. Поведение должно выделять TextBlock, например (или что-то более сложное).

Как мне указать этот триггер? Возможно ли это вообще?

С уважением,

Ronald

1 Ответ

1 голос
/ 26 ноября 2009

Что-то вроде моего ответа на похожую проблему здесь может помочь.

Вот пример того, как вы можете применить эту технику к вашему требованию.

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