情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DependencyObject クラス

依存関係プロパティ システムに関連するオブジェクトを表します。

名前空間: System.Windows
アセンブリ: WindowsBase (windowsbase.dll 内)
XML 名前空間 :  http://schemas.microsoft.com/winfx/2006/xaml/presentation

[TypeDescriptionProviderAttribute(typeof(DependencyObjectProvider))] 
public class DependencyObject : DispatcherObject
/** @attribute TypeDescriptionProviderAttribute(MS.Internal.ComponentModel.DependencyObjectProvider) */ 
public class DependencyObject extends DispatcherObject
TypeDescriptionProviderAttribute(MS.Internal.ComponentModel.DependencyObjectProvider) 
public class DependencyObject extends DispatcherObject

DependencyObject クラスは、その多数の派生クラスにおいて Windows Presentation Foundation (WPF) プロパティ システムのサービスを有効にします。

プロパティ システムの主な機能は、プロパティの値を計算し、変更された値に関するシステム通知を提供することです。プロパティ システムに関連するもう 1 つの主要なクラスに、DependencyProperty があります。DependencyProperty では、依存関係プロパティをプロパティ システムへ登録することができ、それらの依存関係プロパティに関する情報が提供されます。これに対し、DependencyObject では、オブジェクトで依存関係プロパティを使用できるようにします。

DependencyObject のサービスと特性は次のとおりです。

  • 依存関係プロパティのホストのサポート。Register メソッドを呼び出し、そのメソッドの戻り値を public static フィールドとしてクラスに格納することによって、依存関係プロパティを登録します。

  • 添付プロパティのホストのサポート。RegisterAttached メソッドを呼び出し、そのメソッドの戻り値を public static readonly フィールドとしてクラスに格納することによって、添付プロパティを登録します (追加のメンバ要件もあります。詳細については、「添付プロパティの概要」を参照してください)。登録した添付プロパティは、DependencyObject から派生するすべてのクラスで設定できます。

  • DependencyObject に存在する依存関係プロパティの値を取得、設定、および消去するためのユーティリティ メソッド。

  • 依存関係プロパティまたは添付プロパティに関するメタデータ、強制値のサポート、プロパティ変更通知、およびオーバーライド コールバック。DependencyObject クラスは、依存関係プロパティのプロパティ メタデータを所有者別にする場合にも役立ちます。

  • ContentElementFreezable、または Visual から派生したクラスの共通基本クラス (もう 1 つのコア要素クラスである UIElement は、Visual の下位のサブクラスです)。

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);
    }
}

System.Object
   System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
       派生クラス

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0

コミュニティの追加

表示:
© 2014 Microsoft