PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このメタデータと基本メタデータをマージします。
protected:
virtual void Merge(System::Windows::PropertyMetadata ^ baseMetadata, System::Windows::DependencyProperty ^ dp);
protected virtual void Merge (System.Windows.PropertyMetadata baseMetadata, System.Windows.DependencyProperty dp);
abstract member Merge : System.Windows.PropertyMetadata * System.Windows.DependencyProperty -> unit
override this.Merge : System.Windows.PropertyMetadata * System.Windows.DependencyProperty -> unit
Protected Overridable Sub Merge (baseMetadata As PropertyMetadata, dp As DependencyProperty)
パラメーター
- baseMetadata
- PropertyMetadata
このインスタンスの値とマージする基本メタデータ。
このメタデータが適用される依存関係プロパティ。
例
次の例では、プロパティ メタデータに追加のプロパティを追加するカスタム メタデータ型のマージを実装します。
public Boolean SupportsMyFeature
{
get { return _supportsMyFeature; }
set { if (!this.IsSealed) _supportsMyFeature = value; } //else may want to raise exception
}
protected override void Merge(PropertyMetadata baseMetadata, DependencyProperty dp)
{
base.Merge(baseMetadata, dp);
MyCustomPropertyMetadata mcpm = baseMetadata as MyCustomPropertyMetadata;
if (mcpm != null)
{
if (!this.SupportsMyFeature)
{//if not set, revert to base
this.SupportsMyFeature = mcpm.SupportsMyFeature;
}
}
}
注釈
このメソッドは、メタデータがオーバーライドされるときに内部的に使用されます (OverrideMetadata メソッド)。
注意 (継承者)
から PropertyMetadata 派生するクラス実装では、実装で追加したメタデータ プロパティを考慮して、このメソッドをオーバーライドする必要があります。 たとえば、実装で新しいフラグごとの列挙値が追加され、実装で Merge(PropertyMetadata, DependencyProperty) これらのフラグを正しく組み合わせることができる場合があります。
基本実装では、型に既に定義されているすべてのプロパティのマージが処理されるため、実装コードの前に必ず基本実装を PropertyMetadata 呼び出してください。
マージの正確な動作はユーザーの責任です。 値を組み合わせるか、派生メタデータを既定値のままにした場合は基本値に戻すか、特定のメタデータ クラスに追加したプロパティの種類とその意味に基づいて他の多くの動作を選択できます。
適用対象
こちらもご覧ください
.NET