Postupy: Registrace připojené vlastnosti

Tento příklad ukazuje, jak zaregistrovat připojenou vlastnost a poskytnout veřejné přístupové objekty, abyste mohli použít vlastnost v obou typech WPF, jsou také implementovány jako vlastnosti závislostí. Vlastnosti závislostí můžete použít u všech DependencyObject typů.

Příklad

Následující příklad ukazuje, jak pomocí metody zaregistrovat připojenou vlastnost jako vlastnost RegisterAttached závislosti. Třída zprostředkovatele má možnost poskytnout výchozí metadata pro vlastnost, která je použitelná při použití vlastnosti v jiné třídě, pokud tato třída nepřepíše metadata. V tomto příkladu IsBubbleSource je výchozí hodnota vlastnosti nastavena na false.

Třída zprostředkovatele pro připojenou vlastnost (i když není registrována jako vlastnost závislosti) musí poskytovat statické get a nastavit přístupové objekty, které se řídí konvencí Set pojmenování [AttachedPropertyName] a Get[AttachedPropertyName]. Tyto přístupové objekty jsou vyžadovány, aby čtečka jazyka XAML dokázala rozpoznat vlastnost jako atribut v jazyce XAML a přeložit příslušné typy.

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

Viz také