Delen via


Handleiding: Registreren van een gekoppelde eigenschap

In dit voorbeeld ziet u hoe u een gekoppelde eigenschap registreert en openbare toegangsrechten opgeeft, zodat u de eigenschap in zowel XAML als code kunt gebruiken. Gekoppelde eigenschappen zijn een syntaxisconcept dat is gedefinieerd door XAML. De meeste gekoppelde eigenschappen voor WPF-typen worden ook geïmplementeerd als afhankelijkheidseigenschappen. U kunt afhankelijkheidseigenschappen gebruiken voor alle typen DependencyObject.

Voorbeeld

In het volgende voorbeeld ziet u hoe u een gekoppelde eigenschap als een afhankelijkheidseigenschap registreert met behulp van de methode RegisterAttached. De providerklasse heeft de mogelijkheid om standaardmetagegevens op te geven voor de eigenschap die van toepassing is wanneer de eigenschap wordt gebruikt voor een andere klasse, tenzij die klasse de metagegevens overschrijft. In dit voorbeeld is de standaardwaarde van de eigenschap IsBubbleSource ingesteld op false.

De providerklasse voor een gekoppelde eigenschap (zelfs als deze niet is geregistreerd als een afhankelijkheidseigenschap) moet statische get- en set-accessors hebben die de naamconventie volgen Set[AttachedPropertyName] en Get[AttachedPropertyName]. Deze accessors zijn vereist, zodat de handelende XAML-lezer de eigenschap kan herkennen als een kenmerk in XAML en de juiste typen kan oplossen.

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

Zie ook