Como: Implement a Dependency Property
Este exemplo mostra como voltar uma propriedade common language runtime (CLR) com um campo DependencyProperty,definindo, portanto, uma dependency property. Quando você define suas próprias propriedades e deseja que elas ofereçam suporte a muitos aspectos da funcionalidade de Windows Presentation Foundation (WPF), incluindo estilos, associação de dados, herança, animação e os valores padrão, você deve implementá-las como um dependency property.
Exemplo
O exemplo a seguir registra pela primeira vez uma dependency property chamando o método Register. O nome do campo identificados que você usar para armazenar o nome e características da dependency property deve ser o Name que você escolheu para a propriedade de dependência como parte da chamada Register anexada pela sequência literal Property. Por exemplo, se você registrar uma propriedade de dependência com um Name de Location, então, o campo identificador que você definir para a propriedade de dependência deve ser nomeado LocationProperty.
Nesse exemplo, o nome da dependency property e seu ancestral de CLR é State; o campo identificador é StateProperty; o tipo da propriedade é Boolean;e o tipo que registra a dependency property é MyStateControl.
Se você não conseguir seguir esse padrão de nomeação, os designers podem não relatar sua propriedade corretamente, e determinados aspectos da aplicação de estilo do sistema de propriedades pode não se comportar conforme o esperado.
Você também pode especificar metadados padrão para uma dependency property. Este exemplo registra o valor padrão da State dependency property a ser false.
public class MyStateControl : ButtonBase
{
public MyStateControl() : base() { }
public Boolean State
{
get { return (Boolean)this.GetValue(StateProperty); }
set { this.SetValue(StateProperty, value); }
}
public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
"State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}
For the complete sample, see Personalizar Classes com o exemplo de propriedades de dependência.
Para obter mais informações sobre como e por que implementar uma dependency property, em oposição a apenas fazer uma propriedade CLR com um campo particular, consulte Visão geral sobre propriedades de dependência.
Consulte também
Conceitos
Visão geral sobre propriedades de dependência