다음을 통해 공유


DependencyObject 클래스

정의

종속성 속성 시스템에 참가하는 개체를 나타냅니다.

public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
    inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
    inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
상속
DependencyObject
파생
특성

예제

다음 예제에서는 에서 DependencyObject 파생하여 새 추상 클래스를 만듭니다. 그런 다음 클래스는 연결된 속성을 등록하고 연결된 속성에 대한 지원 멤버를 포함합니다.

public abstract class AquariumObject3 : DependencyObject
{
    public enum Bouyancy
    {
        Floats,
        Sinks,
        Drifts
    }
    public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
      "Bouyancy",
      typeof(Bouyancy),
      typeof(AquariumObject3),
      new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
      new ValidateValueCallback(ValidateBouyancy)
    );
    public static void SetBouyancy(UIElement element, Bouyancy value)
    {
        element.SetValue(BouyancyProperty, value);
    }
    public static Bouyancy GetBouyancy(UIElement element)
    {
        return (Bouyancy)element.GetValue(BouyancyProperty);
    }
    private static bool ValidateBouyancy(object value)
    {
        Bouyancy bTest = (Bouyancy) value;
        return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
    }
    public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
      "IsDirty",
      typeof(Boolean),
      typeof(AquariumObject3)
    );
}
Public MustInherit Class AquariumObject3
    Inherits DependencyObject
    Public Enum Bouyancy
        Floats
        Sinks
        Drifts
    End Enum
    Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
    Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
        element.SetValue(BouyancyProperty, value)
    End Sub
    Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
        Return CType(element.GetValue(BouyancyProperty), Bouyancy)
    End Function
    Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
        Dim bTest As Bouyancy = CType(value, Bouyancy)
        Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
    End Function
    Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class

설명

클래스는 DependencyObject 여러 파생 클래스에서 WPF(Windows Presentation Foundation) 속성 시스템 서비스를 사용하도록 설정합니다.

속성 시스템의 기본 함수는 속성 값을 계산하고 변경된 값에 대한 시스템 알림을 제공하는 것입니다. 속성 시스템에 참여하는 또 다른 키 클래스는 입니다 DependencyProperty. DependencyProperty 에서는 속성 시스템에 종속성 속성을 등록하고 각 종속성 속성에 대한 식별 및 정보를 제공하는 반면 DependencyObject 기본 클래스는 개체가 종속성 속성을 사용할 수 있도록 합니다.

DependencyObject 서비스 및 특성에는 다음이 포함됩니다.

  • 종속성 속성 호스팅 지원. 메서드를 호출 Register 하고 메서드의 반환 값을 클래스에 공용 정적 필드로 저장하여 종속성 속성을 등록합니다.

  • 연결된 속성 호스팅 지원. 메서드를 호출 RegisterAttached 하고 메서드의 반환 값을 클래스에 공용 정적 읽기 전용 필드로 저장하여 연결된 속성을 등록합니다. (추가 멤버 요구 사항도 있습니다. 이는 연결된 속성에 대한 WPF 특정 구현을 나타냅니다. 자세한 내용은 연결된 속성 개요를 참조하세요.) 그런 다음, 에서 파생되는 모든 클래스에서 연결된 속성을 설정할 수 있습니다 DependencyObject.

  • 에 있는 종속성 속성의 값에 대한 유틸리티 메서드를 가져와서 설정하고 지우세요 DependencyObject.

  • 메타데이터, 강제 변환 값 지원, 속성 변경 알림 및 종속성 속성 또는 연결된 속성에 대한 콜백 재정의 또한 클래스는 DependencyObject 종속성 속성에 대한 소유자별 속성 메타데이터를 용이하게 합니다.

  • , Freezable또는 Visual에서 ContentElement파생된 클래스에 대한 공통 기본 클래스입니다. (UIElement다른 기본 요소 클래스에는 를 포함하는 Visual클래스 계층 구조가 있습니다.)

생성자

DependencyObject()

DependencyObject 클래스의 새 인스턴스를 초기화합니다.

속성

DependencyObjectType

이 인스턴스의 DependencyObjectType CLR 형식을 래핑하는 을 가져옵니다.

Dispatcher

Dispatcher와 연결된 DispatcherObject를 가져옵니다.

(다음에서 상속됨 DispatcherObject)
IsSealed

이 인스턴스가 현재 봉인되어 있는지(읽기 전용인지) 여부를 나타내는 값을 가져옵니다.

메서드

CheckAccess()

호출 스레드가 이 DispatcherObject에 액세스할 수 있는지 여부를 확인합니다.

(다음에서 상속됨 DispatcherObject)
ClearValue(DependencyProperty)

속성의 로컬 값을 지웁니다. 지울 속성이 DependencyProperty 식별자에서 지정됩니다.

ClearValue(DependencyPropertyKey)

읽기 전용 속성의 로컬 값을 지웁니다. 선언할 속성이 DependencyPropertyKey에서 지정됩니다.

CoerceValue(DependencyProperty)

지정된 종속성 속성의 값을 강제 변환합니다. 호출하는 DependencyObject에 있으므로 이 작업은 종속성 속성의 속성 메타데이터에 지정된 CoerceValueCallback 함수를 호출하여 수행합니다.

Equals(Object)

제공된 DependencyObject가 현재 DependencyObject에 해당하는지 여부를 확인합니다.

GetHashCode()

DependencyObject의 해시 코드를 가져옵니다.

GetLocalValueEnumerator()

DependencyObject에 대해 로컬로 값을 설정한 종속성 속성을 확인하기 위한 특수 열거자를 만듭니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
GetValue(DependencyProperty)

DependencyObject의 인스턴스에서 종속성 속성의 현재 유효 값을 반환합니다.

InvalidateProperty(DependencyProperty)

지정된 종속성 속성의 유효 값을 다시 계산합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

DependencyObject에서 종속성 속성의 유효 값이 업데이트될 때마다 호출됩니다. 변경된 특정 종속성 속성이 이벤트 데이터에서 보고됩니다.

ReadLocalValue(DependencyProperty)

종속성 속성의 로컬 값을 반환합니다(있는 경우).

SetCurrentValue(DependencyProperty, Object)

해당 값 소스를 변경하지 않고 종속성 속성의 값을 설정합니다.

SetValue(DependencyProperty, Object)

지정된 종속성 속성 식별자를 가진 종속성 속성의 로컬 값을 설정합니다.

SetValue(DependencyPropertyKey, Object)

종속성 속성의 DependencyPropertyKey 식별자에 의해 지정된 읽기 전용 종속성 속성의 로컬 값을 설정합니다.

ShouldSerializeProperty(DependencyProperty)

serialization 프로세스에서 지정된 종속성 속성의 값을 직렬화해야 하는지 여부를 나타내는 값을 반환합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
VerifyAccess()

호출 스레드에서 이 DispatcherObject에 액세스할 수 있는지 확인합니다.

(다음에서 상속됨 DispatcherObject)

적용 대상

추가 정보