PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Sammanfogar dessa metadata med basmetadata.
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)
Parametrar
- baseMetadata
- PropertyMetadata
Basmetadata som ska sammanfogas med den här instansens värden.
Beroendeegenskapen som dessa metadata tillämpas på.
Exempel
I följande exempel implementeras en sammanslagning för en anpassad metadatatyp som lägger till ytterligare en egenskap i egenskapsmetadata.
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;
}
}
}
Kommentarer
Den här metoden används internt när metadata åsidosättas (OverrideMetadata -metoden).
Anteckningar till arvingar
Klassimplementeringar som härleds från PropertyMetadata bör åsidosätta den här metoden för att ta hänsyn till eventuella metadataegenskaper som de har lagt till i sina implementeringar. Implementeringen kan till exempel ha lagt till ett nytt uppräkningsvärde för flaggvis, och implementeringen Merge(PropertyMetadata, DependencyProperty) bör sedan kunna kombinera flaggorna korrekt.
Anropa alltid basimplementeringen före implementeringskoden eftersom basimplementeringen tar hand om att slå samman alla egenskaper som redan har definierats för PropertyMetadata typen.
Det exakta beteendet för sammanfogningen är upp till dig. Du kan välja att kombinera värden, återgå till basvärdet om härledda metadata lämnades som standard eller många andra beteenden baserat på de typer av egenskaper som du har lagt till i din specifika metadataklass och deras betydelser.