Comportamento Silverlight com base na atualização da propriedade Modelo
-
05-07-2019 - |
Pergunta
Eu gostaria de ter um comportamento de Silverlight que é desencadeado por uma alteração em uma propriedade no modelo de exibição para minha página. Não consigo descobrir como fazer isso, no entanto.
Então, eu tenho um modelo de visão muito simples:
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.......
}
Este modelo de visualização é o contexto de dados para um controle do usuário que tem um bloco de texto ligado a SomeProperty
:
<TextBlock x:Key="myTextBlock" Text="{Binding SomeProperty}" />
Tudo isso funciona bem. Agora eu gostaria de anexar um comportamento a myTextBlock
que é desencadeado por mudanças para ChangingProperty
no meu modelo de visão. O comportamento deve destacar o TextBlock
, por exemplo (ou algo mais sofisticado).
Como especificar esse gatilho? Isso é possível em tudo?
Atenciosamente,
Ronald
Solução
Algo como a minha resposta para um problema semelhante aqui pode ajudar.
Aqui está um exemplo de como você pode aplicar essa técnica aos seus requisitos.
<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>