DependencyObject Class

종속성 속성 시스템에 참여하는 개체를 나타냅니다. DependencyObjectUIElement, Geometry, FrameworkTemplate, StyleResourceDictionary와 같이 중요한 여러 UI 관련 클래스의 직접적인 기본 클래스입니다.DependencyObject에서 종속성 속성을 지원하는 방식에 대한 자세한 내용은 종속성 속성 개요를 참조하십시오.

상속

Object
  DependencyObject

구문


public class DependencyObject

특성

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

멤버

DependencyObject클래스에는 다음과 같은 형식의 멤버가 있습니다.

생성자

DependencyObject클래스에는 다음과 같은 생성자가 있습니다.

생성자Description
DependencyObject Provides base class initialization behavior for DependencyObject derived classes.

 

메서드

The DependencyObject 클래스 - 이러한 메서드가 있습니다. 다음 위치의 메서드도 상속합니다. Object 클래스.

메서드Description
ClearValue Clears the local value of a dependency property.
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active.
GetValue Returns the current effective value of a dependency property from a DependencyObject.
ReadLocalValue Returns the local value of a dependency property, if a local value is set.
SetValue Sets the local value of a dependency property on a DependencyObject.

 

속성

DependencyObject클래스 - 이러한 속성이 있습니다.

속성사용 권한Description

Dispatcher

읽기 전용Gets the CoreDispatcher that this object is associated with.

 

설명

DependencyObject 클래스를 사용하면 대부분의 해당 파생 클래스에서 종속성 속성 시스템 서비스가 가능합니다. 종속성 속성 개념에 대한 자세한 내용은 종속성 속성 개요를 참조하십시오.

종속성 속성 시스템의 기본 기능은 속성 값을 계산하고 변경된 값에 대한 시스템 알림을 제공하는 것입니다. 종속성 속성 시스템에 참여하는 다른 키 클래스는 DependencyProperty입니다. DependencyProperty를 사용하면 종속성 속성을 속성 시스템으로 등록할 수 있는 반면, DependencyObject를 기본 클래스로 사용하면 개체가 종속성 속성을 사용 및 설정할 수 있습니다.

다음은 DependencyObject에서 제공 또는 지원하는 몇 가지 주목할 만한 서비스와 특징입니다.

  • 종속성 속성 호스팅 지원입니다.
  • 사용자 지정 종속성 속성 호스팅 지원입니다. Register 메서드를 호출하고 메서드의 반환 값을 DependencyObject 클래스에 공용 정적 속성으로 저장하여 종속성 속성을 등록합니다.
  • 연결된 속성 호스팅 지원입니다.
  • 사용자 지정 연결된 속성 호스팅 지원입니다. RegisterAttached 메서드를 호출하고 메서드의 반환 값을 클래스에 공용 정적 속성으로 저장하여 연결된 속성 사용을 위해 종속성 속성을 등록합니다.
  • DependencyObject에 있는 모든 종속성 속성의 값에 대해 유틸리티 메서드의 GetSet을 수행합니다.
  • 메타데이터 또는 속성 값을 검사하기 위한 추가 유틸리티입니다.
  • 고급 스레딩 시나리오를 위한 Dispatcher입니다.
  • 개체 수명 중 이후 시점에 평가할 식으로 속성이 설정될 수 있도록 하여 기본 데이터 바인딩 및 스타일 지정 지원 이러한 개념은 종속성 속성 개요에서 자세히 설명합니다. 데이터 바인딩 개요를 참조하십시오.

DependencyObject 및 스레딩

모든 DependencyObject 인스턴스는 C++, C# 또는 Visual Basic을 사용하여 Windows 스토어 앱에 표시되는 현재 Window와 관련된 UI 스레드에 만들어야 합니다. 각 DependencyObject는 주 UI 스레드에서 만들어야 하지만 Dispatcher를 호출하여 다른 스레드의 디스패처 참조를 사용하여 개체에 액세스할 수 있습니다.

일반적으로는 UI 스레드에서 실행되는 코드만 종속성 속성 값을 변경하거나 읽을 수 있으므로 DependencyObject의 스레딩 측면과 관련이 있습니다. 스레딩 문제는 대개 비동기 패턴과 배경 작업자 스레드를 올바르게 사용하도록 하는 일반적인 UI 코드로 방지할 수 있습니다. 일반적으로 사용자 고유 DependencyObject 형식을 정의한 후 DependencyObject가 반드시 적합하지는 않은 데이터 소스 또는 기타 시나리오에 해당 형식을 사용하려고 하면 DependencyObject 관련 스레딩 문제가 발생합니다.

예제

이 예제에서는 DependencyObject에서 파생되는 클래스를 정의하고 식별자 필드와 함께 연결된 속성을 정의합니다. 이 클래스에 대한 시나리오에서는 서비스 클래스가 다른 UI 요소에서 XAML로 설정할 수 있는 연결된 속성을 선언하며 서비스가 런타임에 해당 UI 요소의 연결된 속성 값에 대해 작업할 수 있습니다.


    public abstract class AquariumServices : DependencyObject
    {
        public enum Bouyancy {Floats,Sinks,Drifts}

        public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
          "Bouyancy",
          typeof(Bouyancy),
          typeof(AquariumServices),
          new PropertyMetadata(Bouyancy.Floats)
        );
        public static void SetBouyancy(DependencyObject element, Bouyancy value)
        {
            element.SetValue(BouyancyProperty, value);
        }
        public static Bouyancy GetBouyancy(DependencyObject element)
        {
            return (Bouyancy)element.GetValue(BouyancyProperty);
        }
    }


요구 사항

지원되는 최소 클라이언트

Windows 8 [Windows 스토어 앱만]

지원되는 최소 서버

Windows Server 2012 [Windows 스토어 앱만]

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadata

Windows.winmd

참고 항목

DependencyProperty
종속성 속성 개요
사용자 지정 종속성 속성
사용자 지정 연결된 속성
연결된 속성 개요

 

 

표시:
© 2014 Microsoft