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

¿Fue útil?

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
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top