Język

PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metoda

Definicja

Scala te metadane z podstawowymi metadanymi.

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)

Parametry

baseMetadata
PropertyMetadata

Podstawowe metadane do scalenia z wartościami tego wystąpienia.

dp
DependencyProperty

Właściwość zależności, do której są stosowane te metadane.

Przykłady

Poniższy przykład implementuje scalanie dla niestandardowego typu metadanych, który dodaje dodatkową właściwość do metadanych właściwości.

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;
        }
    }
}

Uwagi

Ta metoda jest używana wewnętrznie, gdy metadane są zastępowane (OverrideMetadata metoda).

Notatki dotyczące dziedziczenia

Implementacje klas pochodzące z PropertyMetadata klasy powinny zastąpić tę metodę, aby uwzględnić wszelkie właściwości metadanych, które zostały dodane w ich implementacjach. Na przykład implementacja mogła dodać nową wartość wyliczenia flagową, a implementacja Merge(PropertyMetadata, DependencyProperty) powinna być w stanie poprawnie połączyć te flagi.

Zawsze należy wywołać implementację podstawową przed kodem implementacji, ponieważ podstawowa implementacja zajmuje się scalanie wszystkich właściwości zdefiniowanych już na typie PropertyMetadata .

Dokładne zachowanie scalania jest dla Ciebie. Możesz wybrać opcję łączenia wartości, przywrócić wartość podstawową, jeśli pochodne metadane zostały pozostawione domyślnie lub wiele innych zachowań na podstawie typów właściwości dodanych do konkretnej klasy metadanych i ich znaczenia.

Dotyczy

Zobacz też