Gewusst wie: Registrieren einer angefügten Eigenschaft
Dieses Beispiel zeigt, wie Sie eine angefügte Eigenschaft registrieren und öffentliche Accessoren bereitstellen, damit Sie die Eigenschaft in Extensible Application Markup Language (XAML) und Code verwenden können. Bei angefügten Eigenschaften handelt es sich um einen in der Extensible Application Markup Language (XAML) definierten Syntaxbegriff. Die meisten angefügten Eigenschaften für WPF-Typen werden auch als Abhängigkeitseigenschaften implementiert. Sie können Abhängigkeitseigenschaften für alle DependencyObject-Typen verwenden.
Beispiel
Das folgende Beispiel zeigt, wie Sie eine angefügte Eigenschaft als Abhängigkeitseigenschaft registrieren, indem Sie die RegisterAttached-Methode verwenden. Die Anbieterklasse kann bei Bedarf Standardmetadaten für die Eigenschaft bereitstellen, die gelten, wenn die Eigenschaft für eine andere Klasse verwendet wird, es sei denn, diese Klasse überschreibt die Metadaten. In diesem Beispiel ist der Standardwert der IsBubbleSource-Eigenschaft auf false gesetzt.
Die Anbieterklasse für eine angefügte Eigenschaft (auch wenn diese nicht als Abhängigkeitseigenschaft registriert ist) muss statische get- und set-Accessoren bereitstellen, für die die Namenskonvention <Set[NameDerAngefügtenEigenschaft] bzw. Get[NameDerAngefügtenEigenschaft] befolgt wird. Diese Accessoren sind erforderlich, damit der verwendete XAML-Reader die Eigenschaft in XAML als Attribut erkennen und die entsprechenden Typen auflösen kann.
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);
}
Siehe auch
Referenz
Konzepte
Übersicht über Abhängigkeitseigenschaften
Benutzerdefinierte Abhängigkeitseigenschaften