DependencyPropert não definir a partir de XAML com DynamicResource como parâmetro
-
06-09-2019 - |
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
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
}