PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metod

Definition

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.

dp
DependencyProperty

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.

Gäller för

Se även