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 既定値に設定され、その他のすべてのプロパティ PropertyMetadatanull. 指定した型に AddOwner(Type, PropertyMetadata) 追加された依存関係プロパティのバージョンのメタデータを指定する場合は、署名を使用します。

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

上記で推奨される手法は AddOwner 、WPF 内で宣言されている依存関係プロパティを作成するときに使用されます。 たとえば、同様の機能を持つ依存関係プロパティのBorderBrush両方BorderControl定義します。 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

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

注釈

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

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

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

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

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

適用対象