Поведение Silverlight на основе обновления свойства модели представления

StackOverflow https://stackoverflow.com/questions/1804252

Вопрос

Я хотел бы иметь поведение 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, например (или что-то более изощренное).

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

С уважением,

Рональд

Это было полезно?

Решение

Что-то вроде моего ответа на аналогичный вопрос здесь может помочь.

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

<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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top