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 Seriendruck für einen benutzerdefinierten Metadatentyp implementiert, der der Eigenschaftsmetadaten 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 dieser Methode abgeleitet werden, sollten diese Methode überschreiben, um alle Metadateneigenschaften zu berücksichtigen, die sie in ihren Implementierungen hinzugefügt haben. Ihre Implementierung hat z. B. möglicherweise einen neuen Flagwise-Enumerationswert hinzugefügt, und die Merge(PropertyMetadata, DependencyProperty) Implementierung sollte dann in der Lage sein, diese Flags richtig zu kombinieren.

Rufen Sie immer die Basisimplementierung vor dem Implementierungscode auf, da die Basisimplementierung alle bereits für den PropertyMetadata Typ definierten Eigenschaften zusammenführen muss.

Das genaue Verhalten des Seriendrucks liegt bei Ihnen. Sie können festlegen, dass Werte kombiniert werden sollen, zum Basiswert zurückkehren, wenn die abgeleiteten Metadaten auf der Standardeinstellung verbleiben, oder viele andere Verhaltensweisen basierend auf den Eigenschaftentypen, die Sie Ihrer bestimmten Metadatenklasse hinzugefügt haben, und deren Bedeutungen.

Gilt für:

Weitere Informationen