DependencyProperty.AddOwner メソッド

定義

既に登録済みの依存関係プロパティの所有者として、ある型に別の型を追加します。

オーバーロード

AddOwner(Type)

登録済みの依存関係プロパティの所有者として、別の型を追加します。

AddOwner(Type, PropertyMetadata)

既に登録済みの依存関係プロパティの所有者として別の型を追加します。その際、提供される所有者の型に存在する依存関係プロパティに依存関係プロパティのメタデータを提供します。

AddOwner(Type)

登録済みの依存関係プロパティの所有者として、別の型を追加します。

public:
 System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType);
public System.Windows.DependencyProperty AddOwner (Type ownerType);
member this.AddOwner : Type -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type) As DependencyProperty

パラメーター

ownerType
Type

この依存関係プロパティの所有者として追加する型。

戻り値

DependencyProperty

依存関係プロパティを識別する元の DependencyProperty 識別子への参照。 この識別子は、追加するクラスが public static readonly フィールドとして公開する必要があります。

注釈

このメソッドを使用すると、プロパティシステムは、特定の依存関係プロパティを最初に登録しなかった型の依存関係プロパティを認識できます。

通常、 AddOwner は、マネージクラスの継承によって依存関係プロパティを公開していないクラスに依存関係プロパティを追加するために使用されます (クラスの継承によって、派生クラスによってラッパープロパティが継承されるため、既存の依存関係プロパティに対する汎用メンバーテーブルのアクセスが可能になります)。 AddOwner プロパティシステムが、その依存関係プロパティを最初に登録しなかった型の依存関係プロパティを認識できるようにします。

この署名では、メタデータを指定することはできません。 このメソッドを使用すると、新しいとその所有者の種類に対してメタデータが自動的に生成され DependencyProperty ます。 自動生成されるメタデータは、このプロパティが定義されているすべての基本型からのマージされたメタデータの結果です。 結合されたメタデータが使用できない場合は、プロパティの既定のメタデータが使用されます。 メソッドを使用してプロパティが登録されている場合 RegisterAttached 、既定のメタデータは、が呼び出されたときに作成されたメタデータと同じになり RegisterAttached ます。 それ以外の場合は、プロパティが PropertyMetadata DefaultValue プロパティ型の既定値に設定され、の他のすべてのプロパティがに設定されて、オブジェクトが作成され PropertyMetadata null ます。 AddOwner(Type, PropertyMetadata)指定された型に追加された依存関係プロパティのバージョンにメタデータを提供する場合は、シグネチャを使用します。

通常、このメソッドの戻り値は、依存関係プロパティの識別子を格納することによって、依存関係プロパティを宣言および公開するために使用されます。 この識別子は、依存関係プロパティに対してプロパティシステム Api を呼び出す場合 (特に、追加所有者クラスに存在する場合) に、依存関係プロパティへのアクセスを提供します。 同様の機能を示すには、元の所有者と追加された所有者の両方に同じプロパティ名を使用する必要があります。 DependencyProperty AddOwner を使用して型に追加される依存関係プロパティについては、メソッドの戻り値を使用して依存関係プロパティ識別子を定義し、CLR プロパティラッパーを宣言する必要があり AddOwner ます。

上記の方法は、 AddOwner WPF 内で宣言された依存関係プロパティを作成するときに使用します。 たとえば、とは両方とも、 Border Control BorderBrush 類似した機能を持つ依存関係プロパティを定義します。 Control 元の BorderBrush AddOwner 所有者 Border と登録されている依存関係プロパティの識別子に基づいてを呼び出すことにより、プロパティをプロパティシステムに定義し BorderBrushProperty ます。 その AddOwner 後、戻り値を使用して、 DependencyProperty 追加された所有者のそのプロパティに対して新しい静的フィールド () が確立され、 BorderBrushProperty BorderBrush プロパティラッパーも宣言されます。

適用対象

AddOwner(Type, PropertyMetadata)

既に登録済みの依存関係プロパティの所有者として別の型を追加します。その際、提供される所有者の型に存在する依存関係プロパティに依存関係プロパティのメタデータを提供します。

public:
 System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public System.Windows.DependencyProperty AddOwner (Type ownerType, System.Windows.PropertyMetadata typeMetadata);
member this.AddOwner : Type * System.Windows.PropertyMetadata -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type, typeMetadata As PropertyMetadata) As DependencyProperty

パラメーター

ownerType
Type

この依存関係プロパティの所有者として追加する型。

typeMetadata
PropertyMetadata

提供される型に存在する依存関係プロパティを修飾するメタデータ。

戻り値

DependencyProperty

依存関係プロパティを識別する元の DependencyProperty 識別子への参照。 この識別子は、追加するクラスが public static readonly フィールドとして公開する必要があります。

注釈

このメソッドを使用すると、プロパティシステムは、特定の依存関係プロパティを最初に登録しなかった型の依存関係プロパティを認識できます。

このメソッドの戻り値は、依存関係プロパティを宣言および公開するために使用されます。これは、特に、追加する所有者クラスに存在するためです。 通常は、元の所有者と追加された所有者の両方に同じプロパティ名を使用して、同様の機能を示す必要があります。 を使用して型に追加される依存関係プロパティの識別子と新しい CLR プロパティラッパーを公開することをお勧めし AddOwner ます。

上記の方法は、 AddOwner WPF 内で宣言された api を作成するときに使用します。 たとえば、とは両方とも、 Border Control BorderBrush 類似した機能を持つ依存関係プロパティを定義します。 ControlBorderBrush AddOwner 元の所有者 Border と登録されている依存関係プロパティの識別子でを呼び出すことによって、プロパティをプロパティシステムに定義し BorderBrushProperty ます。 その AddOwner 後、戻り値を使用して、 DependencyProperty 追加された所有者のプロパティに静的フィールド () を確立 BorderBrushProperty し、 BorderBrush プロパティラッパーも宣言します。

などの操作では、追加された所有者の依存関係プロパティ識別子を使用する必要があり GetValue ます。 ただし、異なるメタデータを持つ所有者として追加されたクラスの型またはインスタンスに関係する型固有の操作では、やなどのメソッドの呼び出しで元の (追加された所有者ではない) 依存関係プロパティ識別子が指定されている場合でも、予期した結果が返されます GetValue GetMetadata 。 追加された所有者のメタデータは、呼び出し自体によってこれらされ AddOwner 、必ずしも [所有者クラス識別子の追加] フィールドによって排他的に参照されるわけではありません。 ただし、を使用して型に追加された依存関係プロパティの識別子と新しい CLR プロパティラッパーを公開することをお勧めし AddOwner ます。これに失敗すると、プロパティの CLR と XAML 表現の間に不一致が生じます。

指定されたメタデータは、基本所有者に存在する依存関係プロパティのプロパティメタデータとマージされます。 元の基本メタデータで指定されたすべての特性が保持されます。 新しいメタデータで特に変更された特性だけが、基本メタデータの特性を上書きします。 などの一部の特性は、 DefaultValue 新しいメタデータで指定されている場合に置き換えられます。 などの他の PropertyChangedCallback は、結合されます。 最終的には、マージ動作はオーバーライドに使用されているプロパティメタデータ型によって異なるため、ここで説明する動作は、WPF 依存関係プロパティで使用される既存のプロパティメタデータクラスに関するものです。 詳細については、「 依存関係プロパティのメタ データ」および「 フレームワークプロパティメタデータ」を参照してください。

適用対象