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 型で既に定義されているすべてのプロパティのマージを処理するため、実装コードの前に必ず基本実装を呼び出します。
マージの正確な動作はユーザー次第です。 値を組み合わせるか、派生メタデータを既定値のままにした場合は基本値に戻すか、特定のメタデータ クラスに追加したプロパティの種類とその意味に基づく他の多くの動作を選択できます。