PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
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.