반응형

DependencyProperty 필드로 CLR(공용 언어 런타임) 속성을 지원하여 종속성 속성을 정의하는 방법을 보여 줍니다. 사용자 고유의 속성을 정의하고 이 속성이 스타일, 데이터 바인딩, 상속, 애니메이션 및 기본값을 포함하여 WPF(Windows Presentation Foundation) 기능의 여러 측면을 지원하도록 하려면 해당 속성을 종속성 속성으로 구현해야 합니다.

다음 예제에서는 먼저 Register 메서드를 호출하여 종속성 속성을 등록합니다. 종속성 속성의 이름과 특성을 저장하는 데 사용하는 식별자 필드의 이름은 Register 호출의 일부로 종속성 속성에 대해 선택한 Name에 리터럴 문자열 Property를 추가한 이름이어야 합니다. 예를 들어 종속성 속성을 LocationName에 등록한 경우 종속성 속성에 대해 정의하는 식별자 필드 이름은 LocationProperty여야 합니다.

이 예제에서 종속성 속성 및 CLR 접근자의 이름은 State이고, 식별자 필드는 StateProperty이고, 속성의 유형은 Boolean이며, 종속성 속성을 등록하는 유형은 MyStateControl입니다.

이 이름 지정 패턴을 준수하지 않으면 디자이너가 속성을 올바르게 보고하지 않거나 속성 시스템 스타일 응용 프로그램의 특정 측면이 예상대로 동작하지 않을 수 있습니다.

종속성 속성에 대한 기본 메타데이터를 지정할 수도 있습니다. 이 예제에서는 State 종속성 속성의 기본값을 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));
}

반응형

+ Recent posts