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