INotifyPropertyChanged no actualiza los valores basados ??en convertidor?
-
22-07-2019 - |
Pregunta
Tengo una imagen con fuente establecida por un ValueConverter
:
<Image Source="{Binding Converter={StaticResource siConv}}" Width="16" Height="16"/>
Cuando el objeto vinculado genera un evento PropertyChanged
(desde INotifyPropertyChanged
), la imagen no cambia. Supongo que es porque WPF no sabe qué campos mira el convertidor.
¿Cómo le digo a WPF que vuelva a vincular / volver a ejecutar este convertidor cuando cambie una determinada propiedad?
Solución
La respuesta aquí fue usar disparadores de datos, no convertidores de valores. El desencadenante está vinculado directamente a la propiedad y recoge el evento cambiado de propiedad. Además, ahorra escribir un montón de convertidores de valor únicos.
Otros consejos
Y si realmente tiene la intención de escribir un ValueConverter, puede usar un MultiValueConverter con todos los valores que desea que supervise el marco de WPF. Cualquier cambio en esos valores, y el marco actualizaría el valor al que está vinculado.
la ruta es importante:
<Image Source="{Binding Converter={StaticResource siConv}, ConverterParameter=yourproperty, Path=yourproperty, UpdateSourceTrigger=PropertyChanged}" Width="16" Height="16"/>