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クラスは、多数の派生クラスでWindows Presentation Foundation (WPF) プロパティ システム サービスを有効にします。

プロパティ システムの主な機能は、プロパティの値を計算し、変更された値に関するシステム通知を提供することです。 プロパティ システムに参加するもう 1 つのキー クラスは 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)

シリアル化プロセスが、指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。

(継承元 DispatcherObject)

適用対象

こちらもご覧ください