Pergunta

Eu estou tentando desenvolver um tri-state controle do usuário botão personalizado e até agora eu tenho usado CTF para definir propriedades.
Mas eu gostaria de mudar isso para usar o sistema de propriedade WPF com PropertiesDependencies.
Infelizmente eu não conseguem fazê-lo funcionar, quando eu definir a propriedade do meu xaml (pai) usando um DynamicResource, o valor não está definido.

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

Aqui está o código que eu tenho no meu controlador de botão:

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

Eu não até mesmo usar o imóvel em meu botão xaml ainda, mas aparentemente nem sequer entrar na Setter. Eu tenho procurado um monte on-line sem sucesso. Então, talvez eu estou faltando alguma coisa.

Agradecemos antecipadamente por sua ajuda, Boris

Foi útil?

Solução

Além disso, WPF não usa o setter fornecido para definir uma propriedade, ele faz isso diretamente.

A maneira de depuração quando WPF define uma propriedade é adicionar uma chamada de retorno para quando a propriedade é definida, assim.

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top