방법: 연결된 속성 등록

이 예에서는 연결된 속성을 등록하고 공용 접근자를 제공하여 XAML과 코드 모두에서 속성을 사용하는 방법을 보여줍니다. 연결된 속성은 XAML에서 정의한 구문 개념입니다. 대부분의 WPF 형식에 연결된 속성도 종속성 속성으로 구현됩니다. 모든 DependencyObject 유형에서 종속성 속성을 사용할 수 있습니다.

예제

다음 예제에서는 RegisterAttached 메서드를 사용하여 연결된 속성을 종속성 속성으로 등록하는 방법을 보여줍니다. 공급자 클래스에는 속성이 다른 클래스에 사용될 때 해당 클래스의 메타데이터를 재정의하지 않는 한 적용 가능한 속성에 대한 기본 메타데이터를 제공하는 옵션이 있습니다. 이 예제에서는 IsBubbleSource 속성의 기본값은 false로 설정됩니다.

종속성 속성으로 등록되지 않은 경우를 포함하여 연결된 속성에 대한 공급자 클래스는 명명 규칙 Set[AttachedPropertyName]Get[AttachedPropertyName]를 따르는 정적 get 및 set 접근자를 제공해야 합니다. 활성 XAML 판독기가 속성을 XAML에서 특성으로 인식하고 적절한 형식을 확인할 수 있도록 이러한 접근자가 필요합니다.

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

참고 항목