종속성 속성을 구현하는 방법(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 속성을 개인 필드로 백업하는 것 외에 종속성 속성을 구현하는 방법과 이유에 대한 자세한 내용은 종속성 속성 개요를 참조하세요.
참고 항목
.NET Desktop feedback