Comportamiento de Silverlight basado en la actualización de la propiedad del modelo de vista
-
05-07-2019 - |
Pregunta
Me gustaría tener un comportamiento de Silverlight que se desencadena por un cambio en una propiedad en el modelo de vista de mi página. Sin embargo, no puedo averiguar cómo hacer esto.
Por lo tanto, tengo un modelo de vista muy simple:
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 vista es el contexto de datos para un control de usuario que tiene un bloque de texto vinculado a SomeProperty
:
<TextBlock x:Key="myTextBlock" Text="{Binding SomeProperty}" />
Todo esto funciona bien. Ahora me gustaría adjuntar un comportamiento a myTextBlock
que se activa con los cambios a ChangingProperty
en mi modelo de vista. El comportamiento debe resaltar el TextBlock
, por ejemplo (o algo más sofisticado).
¿Cómo especifico este disparador? ¿Es esto posible?
Saludos cordiales,
Ronald
Solución
Algo parecido a mi respuesta a un problema similar aquí podría ayuda.
Este es un ejemplo de cómo podría aplicar esa técnica a su requerimiento.
<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>