DependencyProperty.OverrideMetadata メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した型のインスタンスに存在する場合の代替メタデータをこの依存関係プロパティに提供します。この代替メタデータは、依存関係プロパティの最初の登録時に指定したメタデータの代わりに使用されます。
オーバーロード
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
オーバーライドする型の依存関係プロパティに適用するメタデータ。
読み取り専用の依存関係プロパティのアクセス キー。
注釈
このシグネチャは、読み取り専用の依存関係プロパティ識別子 (DependencyPropertyKey) メソッドの基になる実装を提供します。 読み取り/書き込み依存関係プロパティのメタデータをオーバーライドする場合は、次を使用します OverrideMetadata(Type, PropertyMetadata)。
依存関係プロパティ のメタデータは、プロパティ システムが依存関係プロパティを使用する前にオーバーライドする必要があります。 これは、依存関係プロパティを登録するクラスに対して特定のオブジェクトが作成される時間と同じになります。 OverrideMetadata呼び出しは、このメソッドのパラメーターとしてforType
自身を提供する型の静的コンストラクター内、または同様のインスタンス化によってのみ実行する必要があります。 所有者型のインスタンスが存在した後にメタデータを変更しようとすると、例外は発生しませんが、プロパティ システムの動作が一貫性がありません。
このメソッドを使用して特定の派生クラスオーバーライドのメタデータが確立された後、この同じ派生クラスのメタデータをオーバーライドしようとすると、例外が発生します。
指定されたメタデータは、基本所有者に存在する依存関係プロパティのプロパティ メタデータとマージされます。 元の基本メタデータで指定された特性はすべて保持されます。新しいメタデータで特に変更された特性のみが、基本メタデータの特性をオーバーライドします。 新しいメタデータで指定されている場合は、一部の特性が DefaultValue 置き換えられます。 他のユーザー (例: PropertyChangedCallback) が組み合わされます。 マージ動作は、オーバーライドに使用されるプロパティ メタデータ型によって異なります。 詳細については、「 依存関係プロパティメタデータ 」および 「フレームワークプロパティメタデータ」を参照してください。