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 識別子への参照。 この識別子は、追加するクラスが public static readonly フィールドとして公開する必要があります。

注釈

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

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

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

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

AddOwner上記で推奨される手法は、WPF 内で宣言されている依存関係プロパティを作成するときに使用されます。 たとえば、 と Control の両方Borderで、同様の機能をBorderBrush持つ依存関係プロパティを定義します。 Controlは、元の所有者BorderとそのBorderBrush登録済BorderBrushPropertyみ依存関係プロパティ identifer に基づいて を呼び出AddOwnerすことによって、プロパティ システムに対するプロパティを定義します。 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 識別子への参照。 この識別子は、追加するクラスが public static readonly フィールドとして公開する必要があります。

注釈

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

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

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

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

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

適用対象