다음을 통해 공유


종속성 속성을 구현하는 방법(WPF .NET)

이 문서에서는 CLR(공용 언어 런타임) 속성을 지원하는 DependencyProperty 필드를 사용하여 종속성 속성을 구현하는 방법을 설명합니다. 종속성 속성은 몇 가지 고급 WPF(Windows Presentation Foundation) 속성 시스템 기능을 지원합니다. 이러한 기능에는 스타일, 데이터 바인딩, 상속, 애니메이션 및 기본값이 포함됩니다. 이러한 기능을 지원하도록 정의하는 속성을 원하는 경우 속성을 종속성 속성으로 구현합니다.

예시

다음 예제에서는 Register 메서드를 호출하여 종속성 속성을 등록하는 방법을 보여 줍니다. Register 메서드는 종속성 속성 식별자라는 DependencyProperty 인스턴스를 반환합니다. 식별자는 static readonly 필드에 저장되며 종속성 속성의 이름과 특성을 보유합니다.

식별자 필드는 <property name>Property 명명 규칙을 따라야 합니다. 예를 들어 이름 Location을 사용하여 종속성 속성을 등록하는 경우 식별자 필드의 이름을 LocationProperty로 지정해야 합니다. 이 명명 패턴을 따르지 않으면 WPF 디자이너가 속성을 올바르게 보고하지 않을 수 있으며 속성 시스템 스타일 애플리케이션의 측면이 예상대로 작동하지 않을 수 있습니다.

다음 예제에서 종속성 속성 및 해당 CLR 접근자의 이름HasFish이므로, 식별자 필드의 이름이 HasFishProperty로 지정됩니다. 종속성 속성 형식은 Boolean이며, 종속성 속성을 등록하는 소유자 형식은 Aquarium입니다.

종속성 속성에 대한 기본 메타데이터를 지정할 수도 있습니다. 다음은 HasFish 종속성 속성에 대한 false의 기본값을 설정하는 예제입니다.

public class Aquarium : DependencyObject
{
    public static readonly DependencyProperty HasFishProperty =
        DependencyProperty.Register(
            name: "HasFish",
            propertyType: typeof(bool),
            ownerType: typeof(Aquarium),
            typeMetadata: new FrameworkPropertyMetadata(defaultValue: false));

    public bool HasFish
    {
        get => (bool)GetValue(HasFishProperty);
        set => SetValue(HasFishProperty, value);
    }
}
Public Class Aquarium
    Inherits DependencyObject

    Public Shared ReadOnly HasFishProperty As DependencyProperty =
    DependencyProperty.Register(
        name:="HasFish",
        propertyType:=GetType(Boolean),
        ownerType:=GetType(Aquarium),
        typeMetadata:=New FrameworkPropertyMetadata(defaultValue:=False))

    Public Property HasFish As Boolean
        Get
            Return GetValue(HasFishProperty)
        End Get
        Set(value As Boolean)
            SetValue(HasFishProperty, value)
        End Set
    End Property

End Class

CLR 속성을 개인 필드로 백업하는 것 외에 종속성 속성을 구현하는 방법과 이유에 대한 자세한 내용은 종속성 속성 개요를 참조하세요.

참고 항목