Frage

Ich versuche, eine benutzerdefinierte Tri-State-Taste Benutzersteuerung zu entwickeln, und so weit ich habe CTF wurde mit Eigenschaften einzustellen.
Aber ich mag, dies ändern, um das WPF-Eigenschaftensystem mit PropertiesDependencies werden.
Leider ist es schaffe ich nicht arbeiten zu lassen, wenn ich das Eigentum von meinem XAML (Vater) unter Verwendung eines Dynamic gesetzt, wird der Wert nicht festgelegt.

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

Hier ist der Code, den ich in meinem Button Controller haben:

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

Ich benutze nicht einmal die Eigenschaft in meiner Schaltfläche XAML noch, aber es ist offenbar nicht einmal in den Setter eingeben. Ich habe eine Menge online ohne Erfolg suchen. Vielleicht bin ich etwas fehlt.

Vielen Dank im Voraus für Ihre Hilfe, Boris

War es hilfreich?

Lösung

Auch dann, wenn WPF nicht die Setter bereitgestellt verwenden, um eine Eigenschaft zu setzen, tut sie es direkt.

Die Art und Weise zu debuggen, wenn WPF eine Eigenschaft unterscheidet, ist ein Rückruf für hinzuzufügen, wenn die Eigenschaft festgelegt ist, wie so.

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
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top