Postupy: Registrace připojené vlastnosti

Tento příklad ukazuje, jak zaregistrovat připojenou vlastnost a poskytnout veřejné přístupové objekty, abyste mohli tuto vlastnost použít v XAML i kódu. Připojené vlastnosti jsou koncept syntaxe definovaný XAML. Většina připojených vlastností pro typy WPF se také implementuje jako vlastnosti závislosti. Vlastnosti závislostí můžete použít u libovolného DependencyObject typu.

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 je výchozí hodnota IsBubbleSource 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í Setpojmenování [AttachedPropertyName] a Get[AttachedPropertyName]. Tyto přístupové objekty jsou vyžadovány, aby fungující čtečka XAML rozpoznávala vlastnost jako atribut v JAZYCE XAML a přeložil 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é