DependencyProperty.AddOwner DependencyProperty.AddOwner DependencyProperty.AddOwner DependencyProperty.AddOwner Method

定義

既に登録済みの依存関係プロパティの所有者として、ある型に別の型を追加します。Adds another type as an owner of a dependency property that has already been registered to a type.

オーバーロード

AddOwner(Type) AddOwner(Type) AddOwner(Type) AddOwner(Type)

登録済みの依存関係プロパティの所有者として、別の型を追加します。Adds another type as an owner of a dependency property that has already been registered.

AddOwner(Type, PropertyMetadata) AddOwner(Type, PropertyMetadata) AddOwner(Type, PropertyMetadata) AddOwner(Type, PropertyMetadata)

既に登録済みの依存関係プロパティの所有者として別の型を追加します。その際、提供される所有者の型に存在する依存関係プロパティに依存関係プロパティのメタデータを提供します。Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type.

AddOwner(Type) AddOwner(Type) AddOwner(Type) AddOwner(Type)

登録済みの依存関係プロパティの所有者として、別の型を追加します。Adds another type as an owner of a dependency property that has already been registered.

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 Type Type Type

この依存関係プロパティの所有者として追加する型。The type to add as an owner of this dependency property.

戻り値

依存関係プロパティを識別する元の DependencyProperty 識別子への参照。A reference to the original DependencyProperty identifier that identifies the dependency property. この識別子は、追加するクラスが public static readonly フィールドとして公開する必要があります。This identifier should be exposed by the adding class as a public static readonly field.

注釈

このメソッドを使用すると、プロパティシステムは、特定の依存関係プロパティを最初に登録しなかった型の依存関係プロパティを認識できます。This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

通常、 AddOwnerは、マネージクラスの継承によって依存関係プロパティを公開していないクラスに依存関係プロパティを追加するために使用されます (クラスの継承によって、ラッパープロパティが派生クラスに継承されるため、では、一般的なメンバー-テーブルに依存関係プロパティへのアクセス権が既に与えられています)。Typically, AddOwner is used to add dependency properties to classes that do not already expose that dependency property through managed class inheritance (class inheritance would cause the wrapper properties to be inherited by the derived class, and thus would provide general members-table access to the dependency property already). AddOwnerプロパティシステムが、その依存関係プロパティを最初に登録しなかった型の依存関係プロパティを認識できるようにします。AddOwner enables the property system to recognize a dependency property on a type that did not register that dependency property initially.

この署名では、メタデータを指定することはできません。This signature does not allow for specifying metadata. このメソッドを使用すると、新しいDependencyPropertyとその所有者の種類に対してメタデータが自動的に生成されます。When you use this method, the metadata is automatically generated for the new DependencyProperty and its owner type. 自動生成されるメタデータは、このプロパティが定義されているすべての基本型からのマージされたメタデータの結果です。The auto-generated metadata is the result of the merged metadata from all of the base types that have this property defined. 結合されたメタデータが使用できない場合は、プロパティの既定のメタデータが使用されます。If no merged metadata is available, then the default metadata for the property is used. RegisterAttachedメソッドを使用してプロパティが登録されている場合、既定のメタデータは、が呼び出されたRegisterAttachedときに作成されたメタデータと同じになります。If the property is registered by using the RegisterAttached method, then the default metadata is the same as the metadata that is created when RegisterAttached was called. それ以外の場合は、プロパティがDefaultValueプロパティ型の既定値に設定され、の他のPropertyMetadataすべてのプロパティがnullに設定されて、オブジェクトが作成されます。PropertyMetadataOtherwise, the PropertyMetadata object is created with the DefaultValue property set to the property type's default and all other properties of the PropertyMetadata is set to null. 指定さAddOwner(Type, PropertyMetadata)れた型に追加された依存関係プロパティのバージョンにメタデータを提供する場合は、シグネチャを使用します。Use the AddOwner(Type, PropertyMetadata) signature if you want to provide metadata for the version of the dependency property as added to the provided type.

通常、このメソッドの戻り値は、依存関係プロパティの識別子を格納することによって、依存関係プロパティを宣言および公開するために使用されます。The return value of this method is typically used to declare and expose the dependency property by storing a dependency property identifier. 依存関係プロパティに対してプロパティシステムAPIAPIsを呼び出す場合 (特に、追加する所有者クラスに存在する場合)、この識別子は依存関係プロパティへのアクセスを提供します。The identifier provides access to the dependency property if you want to call property system APIAPIs against the dependency property, particularly as it exists on the adding owner class. 同様の機能を示すには、元の所有者と追加された所有者の両方に同じプロパティ名を使用する必要があります。The same property name for both original owner and added owner should be used to indicate the similar functionality. を使用してDependencyProperty CLRCLR AddOwnerAddOwnerに追加される依存関係プロパティについては、メソッドの戻り値を使用して依存関係プロパティ識別子を定義し、プロパティラッパーを宣言する必要があります。You should use the DependencyProperty return value of the AddOwner method to define the dependency property identifier, and also to declare CLRCLR property wrappers, for dependency properties that are added to types using AddOwner.

上記AddOwnerの方法は、内でWPFWPF宣言されている依存関係プロパティを作成するときに使用します。The AddOwner methodology recommended above is used when creating the dependency properties that are declared within WPFWPF. たとえば、とはBorder両方ControlともBorderBrush 、類似した機能を持つ依存関係プロパティを定義します。For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control元の所有BorderBrushPropertyBorderと登録されてAddOwnerいる依存関係プロパティの識別子に基づいてを呼び出すことにより、プロパティをプロパティシステムに定義します。 BorderBrushControl defines its BorderBrush property to the property system by calling AddOwner based on the original owner Border and its registered BorderBrushProperty dependency property identifer. その後、 DependencyProperty BorderBrushProperty BorderBrush戻り値を使用して、追加された所有者のそのプロパティに対して新しい静的フィールド () が確立され、プロパティラッパーも宣言されます。 AddOwnerThe AddOwner return value is then used to establish a new static DependencyProperty field (BorderBrushProperty) for that property on the added owner, and a BorderBrush property wrapper is also declared.

AddOwner(Type, PropertyMetadata) AddOwner(Type, PropertyMetadata) AddOwner(Type, PropertyMetadata) AddOwner(Type, PropertyMetadata)

既に登録済みの依存関係プロパティの所有者として別の型を追加します。その際、提供される所有者の型に存在する依存関係プロパティに依存関係プロパティのメタデータを提供します。Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type.

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 Type Type Type

この依存関係プロパティの所有者として追加する型。The type to add as owner of this dependency property.

typeMetadata
PropertyMetadata PropertyMetadata PropertyMetadata PropertyMetadata

提供される型に存在する依存関係プロパティを修飾するメタデータ。The metadata that qualifies the dependency property as it exists on the provided type.

戻り値

依存関係プロパティを識別する元の DependencyProperty 識別子への参照。A reference to the original DependencyProperty identifier that identifies the dependency property. この識別子は、追加するクラスが public static readonly フィールドとして公開する必要があります。This identifier should be exposed by the adding class as a public static readonly field.

注釈

このメソッドを使用すると、プロパティシステムは、特定の依存関係プロパティを最初に登録しなかった型の依存関係プロパティを認識できます。This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

このメソッドの戻り値は、依存関係プロパティを宣言および公開するために使用されます。これは、特に、追加する所有者クラスに存在するためです。The return value of this method is used to declare and expose the dependency property, particularly as it exists on the adding owner class. 通常は、元の所有者と追加された所有者の両方に同じプロパティ名を使用して、同様の機能を示す必要があります。Generally, the same property name for both original owner and added owner should be used to indicate the similar functionality. を使用してCLRCLR AddOwner型に追加される依存関係プロパティの識別子と新しいプロパティラッパーを公開することをお勧めします。It is good practice to expose the identifiers, as well as new CLRCLR property wrappers, for dependency properties that are added to types using AddOwner.

上記AddOwnerの方法は、でAPIAPIs WPFWPF宣言するときに使用します。The AddOwner methodology recommended above is used when creating APIAPIs declared within WPFWPF. たとえば、とはBorder両方ControlともBorderBrush 、類似した機能を持つ依存関係プロパティを定義します。For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control元の所有BorderBrushPropertyBorderと登録されてAddOwnerいる依存関係プロパティの識別子でを呼び出すことによって、プロパティをプロパティシステムに定義します。 BorderBrushControl defines its BorderBrush property to the property system by calling AddOwner on original owner Border and its registered BorderBrushProperty dependency property identifer. その後、 DependencyProperty BorderBrushProperty BorderBrush戻り値を使用して、追加された所有者のプロパティに静的フィールド () を確立し、プロパティラッパーも宣言します。 AddOwnerThe AddOwner return value is then used to establish a static DependencyProperty field (BorderBrushProperty) for that property on the added owner, and a BorderBrush property wrapper is also declared.

などGetValueの操作では、追加された所有者の依存関係プロパティ識別子を使用する必要があります。The added owner's dependency property identifier should be used for operations such as GetValue. ただし、異なるメタデータを持つ所有者として追加されたクラスの型またはインスタンスに関係する型固有の操作では、元の (追加された所有者ではない) 依存関係プロパティの識別子がで指定されている場合でも、期待どおりの結果が返されます。GetValueGetMetadataなどのメソッドの呼び出し。However, type-specific operations involving either types or instances of the class that was added as owner with different metadata will still return the expected results even if the original (not the added owner's) dependency property identifier is specified in calls to methods such as GetValue or GetMetadata. 追加された所有者のメタデータはAddOwner 、呼び出し自体によってこれらされ、必ずしも [所有者クラス識別子の追加] フィールドによって排他的に参照されるわけではありません。The metadata for the added owner is perpetuated by the AddOwner call itself, not necessarily referenced exclusively by the adding owner class identifier field. ただし、を使用してCLRCLR AddOwner型に追加された依存関係プロパティの識別子と新しいプロパティラッパーを公開することをお勧めします。これに失敗すると、 CLRCLRとの間に不一致が生じます。XAMLXAMLプロパティの表現。Nevertheless, it is good practice to expose the identifier, as well as new CLRCLR property wrappers, for dependency properties that are added to types using AddOwner, because failing to do so creates disparity between the CLRCLR and XAMLXAML representations of your properties.

指定されたメタデータは、基本所有者に存在する依存関係プロパティのプロパティメタデータとマージされます。The supplied metadata is merged with the property metadata for the dependency property as it exists on the base owner. 元の基本メタデータで指定されたすべての特性が保持されます。Any characteristics that were specified in the original base metadata will persist. 新しいメタデータで特に変更された特性だけが、基本メタデータの特性を上書きします。Only those characteristics that were specifically changed in the new metadata will override the characteristics of the base metadata. などの一部の特性DefaultValueは、新しいメタデータで指定されている場合に置き換えられます。Some characteristics, such as DefaultValue, are replaced if they are specified in the new metadata. などの他のPropertyChangedCallbackは、結合されます。Others, such as PropertyChangedCallback, are combined. 最終的には、マージ動作は、オーバーライドに使用されているプロパティメタデータ型に依存するため、ここで説明する動作は、 WPFWPF依存関係プロパティで使用される既存のプロパティメタデータクラスに対して行われます。Ultimately, the merge behavior depends on the property metadata type being used for the override, so the behavior described here is for the existing property metadata classes used by WPFWPF dependency properties. 詳細については、「依存関係プロパティのメタデータ」および「フレームワークプロパティメタデータ」を参照してください。For details, see Dependency Property Metadata and Framework Property Metadata.

適用対象