Поведение Silverlight на основе обновления свойства модели представления
-
05-07-2019 - |
Вопрос
Я хотел бы иметь поведение 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>