no DependencyPropert fijar de XAML con DynamicResource como parámetro
-
06-09-2019 - |
Pregunta
Estoy tratando de desarrollar un control de botón de usuario personalizada de los tres estados y hasta ahora he estado utilizando CTF para establecer las propiedades.
Pero me gustaría cambiar esto a estar utilizando el sistema de propiedades de WPF con PropertiesDependencies.
Desafortunadamente no logro hacer que funcione, al configurar la propiedad de mi xaml (padre) usando un DynamicResource, el valor no está establecido.
<common:StateImageButton x:Name="story_buttonRecord" BackTest="{DynamicResource backTest}" />
Aquí está el código que tengo en mi controlador de botón:
public ImageSource BackTest
{
get { return (ImageSource)this.GetValue(BackProp); }
set { this.SetValue(WidthProp,value); }
}
public static readonly DependencyProperty BackProp =
DependencyProperty.Register(
"BackTest",
typeof(ImageSource),
typeof(StateImageButton),
new FrameworkPropertyMetadata());
Ni siquiera utilizar la propiedad en mi botón xaml todavía, pero al parecer ni siquiera entra en el organismo. He estado buscando mucho en línea sin éxito. Así que tal vez me falta algo.
Gracias de antemano por su ayuda, Boris
Solución
Además, WPF no utiliza el colocador proporcionado a establecer una propiedad, lo hace directamente.
La forma de depuración cuando WPF establece una propiedad es añadir una devolución de llamada para cuando la propiedad se establece, como tal.
public static readonly DependencyProperty BackProp =
DependencyProperty.Register(
"BackTest",
typeof(ImageSource),
typeof(StateImageButton),
new FrameworkPropertyMetadata(OnBackChanged));
private static void OnBackChanged(
DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
var sender = (StateImageButton)d; // Put a breakpoint here
}