방법: 종속성 속성 구현How to: Implement a Dependency Property

백업 하는 방법을 보여 주는이 예제는 CLR(공용 언어 런타임)common language runtime (CLR) 속성을는 DependencyProperty 필드에서 종속성 속성을 정의할 수 있습니다.This example shows how to back a CLR(공용 언어 런타임)common language runtime (CLR) property with a DependencyProperty field, thus defining a dependency property. 고유 속성을 정의하고 스타일, 데이터 바인딩, 상속, 애니메이션 및 기본값을 포함한 WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) 기능의 여러 측면을 지원하려면 해당 속성을 종속성 속성으로 구현해야 합니다.When you define your own properties and want them to support many aspects of WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) functionality, including styles, data binding, inheritance, animation, and default values, you should implement them as a dependency property.

Example

다음 예제에서는 호출 하 여 종속성 속성을 먼저 등록는 Register 메서드.The following example first registers a dependency property by calling the Register method. 종속성 속성의 특징 해야 및 이름을 저장 하는 사용 하는 식별자 필드의 이름은 Name 의 일환으로 종속성 속성에 대해 선택한는 Register 리터럴 문자열에 의해 추가 된 호출 Property합니다.The name of the identifier field that you use to store the name and characteristics of the dependency property must be the Name you chose for the dependency property as part of the Register call, appended by the literal string Property. 예를 들어, 종속성 속성을 등록 하는 경우는 NameLocation, 종속성 속성에 대해 정의 하는 식별자 필드 이름을 지정 해야 하는 다음 LocationProperty합니다.For instance, if you register a dependency property with a Name of Location, then the identifier field that you define for the dependency property must be named LocationProperty.

이 예제에서는 종속성 속성의 이름 및 해당 CLRCLR 접근자가 State; 식별자 필드는 StateProperty; 속성의 형식이 Boolean; 종속성 속성을 등록 된 형식이 고 MyStateControl합니다.In this example, the name of the dependency property and its CLRCLR accessor is State; the identifier field is StateProperty; the type of the property is Boolean; and the type that registers the dependency property is MyStateControl.

이 명명 패턴을 따르지 못한 경우 디자이너가 속성을 제대로 보고하지 않을 수 있으며 속성 시스템 스타일 응용 프로그램의 특정 측면이 예상대로 작동하지 않을 수 있습니다.If you fail to follow this naming pattern, designers might not report your property correctly, and certain aspects of property system style application might not behave as expected.

종속성 속성에 대한 기본 메타데이터를 지정할 수도 있습니다.You can also specify default metadata for a dependency property. 이 예제에서는 State 종속성 속성의 기본값이 false로 등록됩니다.This example registers the default value of the State dependency property to be false.

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}
 Public Class MyStateControl
  Inherits ButtonBase
Public Sub New()
	MyBase.New()
End Sub
Public Property State() As Boolean
  Get
	  Return CType(Me.GetValue(StateProperty), Boolean)
  End Get
  Set(ByVal value As Boolean)
	  Me.SetValue(StateProperty, value)
  End Set
End Property
Public Shared ReadOnly StateProperty As DependencyProperty = DependencyProperty.Register("State", GetType(Boolean), GetType(MyStateControl),New PropertyMetadata(False))
 End Class

개인 필드가 있는 CLRCLR 속성을 단지 백업하는 것과는 반대로 종속성 속성을 구현하는 방법과 이유에 대한 자세한 내용은 종속성 속성 개요를 참조하세요.For more information about how and why to implement a dependency property, as opposed to just backing a CLRCLR property with a private field, see Dependency Properties Overview.

참고 항목See Also

종속성 속성 개요Dependency Properties Overview
방법 항목How-to Topics