Freigeben über


PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Methode

Definition

Führt diese Metadaten mit den Basismetadaten zusammen.

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)

Parameter

baseMetadata
PropertyMetadata

Die Basismetadaten, die mit den Werten dieser Instanz zusammengeführt werden sollen.

dp
DependencyProperty

Die Abhängigkeitseigenschaft, auf die diese Metadaten angewendet werden.

Beispiele

Im folgenden Beispiel wird ein Merge für einen benutzerdefinierten Metadatentyp implementiert, der den Eigenschaftenmetadaten eine zusätzliche Eigenschaft hinzufügt.

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;
        }
    }
}

Hinweise

Diese Methode wird intern verwendet, wenn Metadaten überschrieben werden (OverrideMetadata -Methode).

Hinweise für Vererber

Klassenimplementierungen, die von PropertyMetadata abgeleitet werden, sollten diese Methode überschreiben, um metadateneigenschaften zu berücksichtigen, die sie in ihren Implementierungen hinzugefügt haben. Beispielsweise hat Ihre Implementierung möglicherweise einen neuen flagweisen Enumerationswert hinzugefügt, und die Merge(PropertyMetadata, DependencyProperty) Implementierung sollte dann in der Lage sein, diese Flags ordnungsgemäß zu kombinieren.

Rufen Sie immer die Basisimplementierung vor Dem Implementierungscode auf, da die Basisimplementierung alle eigenschaften, die bereits für den PropertyMetadata Typ definiert sind, zusammenzuführen.

Das genaue Verhalten der Zusammenführung liegt bei Ihnen. Sie können werte kombinieren lassen, den Basiswert wiederherstellen, wenn die abgeleiteten Metadaten den Standardwert beibehalten, oder viele andere Verhaltensweisen basierend auf den Eigenschaftentypen, die Sie ihrer bestimmten Metadatenklasse hinzugefügt haben, und deren Bedeutungen.

Gilt für:

Weitere Informationen