DependencyProperty.OverrideMetadata メソッド

定義

指定した型のインスタンスに存在する場合、この依存関係プロパティの代替メタデータと、初期依存関係プロパティの登録で指定されたメタデータを提供します。

オーバーロード

名前 説明
OverrideMetadata(Type, PropertyMetadata)

指定した型のインスタンスに存在する場合に、この依存関係プロパティの代替メタデータを指定し、基本型から継承された依存関係プロパティに存在するメタデータをオーバーライドします。

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

指定した型のインスタンスに存在する場合に、読み取り専用の依存関係プロパティの代替メタデータを提供し、初期依存関係プロパティの登録で指定されたメタデータをオーバーライドします。 例外が発生しないようにするには、読み取り専用の依存関係プロパティの DependencyPropertyKey を渡す必要があります。

OverrideMetadata(Type, PropertyMetadata)

指定した型のインスタンスに存在する場合に、この依存関係プロパティの代替メタデータを指定し、基本型から継承された依存関係プロパティに存在するメタデータをオーバーライドします。

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata(Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

パラメーター

forType
Type

この依存関係プロパティが継承され、指定された代替メタデータが適用される型。

typeMetadata
PropertyMetadata

オーバーライドする型の依存関係プロパティに適用するメタデータ。

例外

読み取り専用の依存関係プロパティのメタデータをオーバーライドしようとしました (このシグネチャを使用して操作を実行することはできません)。

指定された型に存在する依存関係プロパティのメタデータは既に確立されています。

注釈

依存関係プロパティのメタデータは、プロパティ システムが依存関係プロパティを使用する前にオーバーライドする必要があります。 これは、依存関係プロパティを登録するクラスを使用して特定のインスタンスが作成される時間と同じになります。 OverrideMetadataの呼び出しは、このメソッドのforType パラメーターとして、または同様のインスタンス化を使用して、型の静的コンストラクター内でのみ実行する必要があります。 所有者型のインスタンスが存在した後にメタデータを変更しようとすると、例外は発生しませんが、プロパティ システムの動作が一貫性がなくなります。

このメソッドで特定の派生クラスオーバーライドのメタデータが確立された後、この同じ派生クラスのメタデータをオーバーライドしようとすると、例外が発生します。

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

適用対象

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

指定した型のインスタンスに存在する場合に、読み取り専用の依存関係プロパティの代替メタデータを提供し、初期依存関係プロパティの登録で指定されたメタデータをオーバーライドします。 例外が発生しないようにするには、読み取り専用の依存関係プロパティの DependencyPropertyKey を渡す必要があります。

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::DependencyPropertyKey ^ key);
public void OverrideMetadata(Type forType, System.Windows.PropertyMetadata typeMetadata, System.Windows.DependencyPropertyKey key);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata * System.Windows.DependencyPropertyKey -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata, key As DependencyPropertyKey)

パラメーター

forType
Type

この依存関係プロパティが継承され、指定された代替メタデータが適用される型。

typeMetadata
PropertyMetadata

オーバーライドする型の依存関係プロパティに適用するメタデータ。

key
DependencyPropertyKey

読み取り専用依存関係プロパティのアクセス キー。

注釈

このシグネチャは、読み取り専用の依存関係プロパティ識別子 (DependencyPropertyKey) メソッドの基になる実装を提供します。 読み取り/書き込み依存関係プロパティのメタデータをオーバーライドする場合は、 OverrideMetadata(Type, PropertyMetadata)を使用します。

依存関係プロパティのメタデータは、プロパティ システムが依存関係プロパティを使用する前にオーバーライドする必要があります。 これは、依存関係プロパティを登録するクラスに対して特定のオブジェクトが作成される時間と同じになります。 OverrideMetadataの呼び出しは、このメソッドのforType パラメーターとして、または同様のインスタンス化を使用して、型の静的コンストラクター内でのみ実行する必要があります。 所有者型のインスタンスが存在した後にメタデータを変更しようとすると、例外は発生しませんが、プロパティ システムの動作が一貫性がなくなります。

このメソッドで特定の派生クラスオーバーライドのメタデータが確立された後、この同じ派生クラスのメタデータをオーバーライドしようとすると、例外が発生します。

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

適用対象