Como: Registrar um imóvel anexado
Este exemplo mostra como registrar uma propriedade anexada e fornecer acessadores públicos para que você possa usar a propriedade em XAML e código. As propriedades anexadas são um conceito de sintaxe definido por XAML. A maioria das propriedades ligadas para tipos WPF também são implementadas como propriedades dependentes. Você pode usar propriedades de dependência em quaisquer tipos de DependencyObject.
Exemplo
O exemplo a seguir mostra como registrar uma propriedade anexada como uma propriedade de dependência, usando o método RegisterAttached. A classe provider tem a opção de fornecer metadados padrão para a propriedade que é aplicável quando a propriedade é usada em outra classe, a menos que essa classe substitua os metadados. Neste exemplo, o valor padrão da propriedade IsBubbleSource
é definido como false
.
A classe de fornecedor para uma propriedade anexada (mesmo que não esteja registada como uma propriedade de dependência) deve prover acessores estáticos 'get' e 'set' que sigam a convenção de nomeação Set
[AttachedPropertyName] e Get
[AttachedPropertyName]. Esses acessadores são necessários para que o leitor XAML atuante possa reconhecer a propriedade como um atributo em XAML e resolver os tipos apropriados.
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
"IsBubbleSource",
typeof(Boolean),
typeof(AquariumObject),
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
return (Boolean)element.GetValue(IsBubbleSourceProperty);
}
Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject), New FrameworkPropertyMetadata(False, FrameworkPropertyMetadataOptions.AffectsRender))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function
Ver também
- DependencyProperty
- Visão geral das propriedades de dependência
- propriedades de dependência personalizadas
- Tópicos de instruções
.NET Desktop feedback