Guide pratique pour inscrire une propriété jointe

Cet exemple montre comment inscrire une propriété jointe et fournir des accesseurs publics afin que vous puissiez utiliser la propriété dans XAML et dans le code. Les propriétés jointes sont un concept de syntaxe défini par XAML. La plupart des propriétés jointes pour les types WPF sont également implémentées en tant que propriétés de dépendance. Vous pouvez utiliser des propriétés de dépendance sur tous les DependencyObject types.

Exemple

L’exemple suivant montre comment inscrire une propriété jointe en tant que propriété de dépendance à l’aide de la RegisterAttached méthode. La classe de fournisseur a la possibilité de fournir des métadonnées par défaut pour la propriété qui s’appliquent quand celle-ci est utilisée sur une autre classe, à moins que cette classe ne substitue les métadonnées. Dans cet exemple, la valeur par défaut de la propriété IsBubbleSource est définie sur false.

La classe de fournisseur pour une propriété jointe (même si elle n’est pas inscrite en tant que propriété de dépendance) doit fournir des accesseurs get et set statiques qui respectent la convention d’affectation de noms Set[NomPropriétéJointe] et Get[NomPropriétéJointe]. Ces accesseurs sont requis afin que le lecteur XAML agissant puisse reconnaître la propriété en tant qu’attribut en XAML et résoudre les types appropriés.

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

Voir aussi