Question

Je suis en train de développer un contrôle bouton trois états personnalisés utilisateur et jusqu'à présent, je l'ai utilisé pour définir les propriétés du FCT.
Mais je voudrais changer cela à l'aide du système de propriété WPF avec PropertiesDependencies.
Malheureusement, je ne parviens pas à le faire fonctionner, quand je mets la propriété de mon XAML (père) en utilisant un DynamicResource, la valeur est définie.

<common:StateImageButton x:Name="story_buttonRecord"  BackTest="{DynamicResource backTest}" />

Voici le code que j'ai dans mon contrôleur de bouton:

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());

Je ne ne même pas utiliser la propriété dans mon bouton XAML encore, mais il semble même pas entrer dans le Setter. J'ai cherché beaucoup en ligne sans succès. Donc, je suis peut-être manque quelque chose.

Merci d'avance pour votre aide, Boris

Était-ce utile?

La solution

En outre, WPF n'utilise pas le setter fourni pour définir une propriété, il le fait directement.

La façon de débogage lorsque WPF définit une propriété est d'ajouter un rappel lorsque la propriété est définie, comme ainsi.

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
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top