PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Method

定義

このメタデータと基本メタデータをマージします。Merges this metadata with the base metadata.

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

このインスタンスの値とマージする基本メタデータ。The base metadata to merge with this instance's values.

dp
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

このメタデータが適用される依存関係プロパティ。The dependency property to which this metadata is being applied.

次の例では、プロパティのメタデータに追加のプロパティを追加するカスタム メタデータの種類のマージを実装します。The following example implements a merge for a custom metadata type that adds an additional property to the property metadata.

public Boolean SupportsMyFeature
{
    get { return _supportsMyFeature; }
    set { if (this.IsSealed != true) _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 == false)
        {//if not set, revert to base
            this.SupportsMyFeature = mcpm.SupportsMyFeature;
        }
    }
}

注釈

メタデータが上書きされているときに、このメソッドが内部的に使用されます (OverrideMetadataメソッド)。This method is used internally when metadata is being overridden (OverrideMetadata method).

注意 (継承者)

クラスから派生する実装PropertyMetadata実装に追加したすべてのメタデータ プロパティに対応するには、このメソッドをオーバーライドする必要があります。Class implementations that derive from PropertyMetadata should override this method to account for any metadata properties they have added in their implementations. たとえば、実装追加可能性が新しいフラグ列挙値、およびMerge(PropertyMetadata, DependencyProperty)実装できる必要がありますし、それらのフラグを正しく結合します。For instance, your implementation might have added a new flagwise enumeration value, and the Merge(PropertyMetadata, DependencyProperty) implementation should then be able to combine those flags correctly.

常に、基本実装を呼び出す前、実装コードを既に定義されているすべてのプロパティをマージした基本の実装が自動的に処理、PropertyMetadata型。Always call the base implementation prior to your implementation code, because the base implementation takes care of merging all the properties already defined on the PropertyMetadata type.

マージの正確な動作は自由です。The exact behavior of the merge is up to you. 値を結合、派生メタデータの既定値、または、特定のメタデータ クラスとその意味に追加したプロパティの型に基づくその他の多くの動作のままにした場合、基本値に戻すことができます。You could choose to have values combined, revert to base value if the derived metadata were left at the default, or many other behaviors based on the types of properties you have added to your particular metadata class, and their meanings.

適用対象

こちらもご覧ください