Compartir a través de


Cómo: Registrar una propiedad asociada

En este ejemplo se muestra cómo registrar una propiedad adjunta y proporcionar descriptores de acceso públicos para que se pueda utilizar la propiedad en Extensible Application Markup Language (XAML) y en código. Las propiedades adjuntas son un concepto de sintaxis definido por Extensible Application Markup Language (XAML). La mayoría de las propiedades adjuntas para los tipos de WPF también se implementan como propiedades de dependencia. Puede utilizar las propiedades de dependencia en cualquier tipo DependencyObject.

Ejemplo

En el ejemplo siguiente se muestra cómo registrar una propiedad adjunta como una propiedad de dependencia, utilizando el método RegisterAttached. La clase de proveedor tiene la opción de proporcionar los metadatos predeterminados para la propiedad que son aplicables cuando la propiedad se utiliza en otra clase, a menos que esa clase invalide los metadatos. En este ejemplo, el valor predeterminado de la propiedad IsBubbleSource se establece en false.

La clase de proveedor para una propiedad adjunta (incluso si no se registra como una propiedad de dependencia) debe proporcionar descriptores de acceso get y set estáticos que sigan la convención de nomenclatura Set[NombreDePropiedadAdjunta] y Get[NombreDePropiedadAdjunta]. Se requieren estos descriptores de acceso para que el lector activo de XAML pueda reconocer la propiedad como atributo en XAML y resolver los tipos adecuados. 

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

Vea también

Referencia

DependencyProperty

Conceptos

Información general sobre las propiedades de dependencia

Propiedades de dependencia personalizadas

Otros recursos

Temas "Cómo..." sobre propiedades