Ordem em passos de inicialização caos de controle
Eu gostaria de saber quando é realmente o que acontece dentro do processo de iniciação de controles quando inicio um aplicativo WPF?
Quando a DP é iniciada? Quando vinculativo? Quando o DataContext é definido? O DataContext é avaialbe no construtor de um controle? Existe algum tipo de ordem?
Eu percebi que corri para uma armadilha que uma vez que eu definir um valor em getter / setter de um construtor DP dentro de um controle o valor de DP é atualizado, mas imediatamente também os valores são revertidos para o valor padrão que foi nulo.
Então, meu palpite é que os contrutores obtenham as propriedades de dependência primeiro e depois as iniciadas.
Alguém pode me ajudar com isso?
Edit: Apenas para Rachel. O dp recebe o valor 234 e o retorno da informação volta para nulo. Eu acho que é porque o construtor é chamado primeiro e, em seguida, subsequentemente, a inicialização do dps acontece, o que configura o dp de volta para null, porque null é o valor padrão. Estou pensando errado sobre isso? Qual é a ordem das etapas de inicialização de um objeto de controle ou dependência.
class MySuperDuperCoolClass : ContentControl
{
public MySuperDuperCoolClass()
{
InitalizeComponents();
this.MySuperDuperProperty = "234";
}
public string MySuperDuperProperty
{
get { return (string)GetValue(MySuperDuperPropertyProperty);}
set { SetValue(MySuperDuperPropertyProperty, value);}
}
public static DependencyProperty MySuperDuperPropertyProperty =
DependencyProperty.Register("MySuperDuperProperty", typeof(string), typeof(MySuperDuperCoolClass),
new PropertyMetadata(null));
}