PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metoda

Definicja

Scala te metadane z metadanymi podstawowymi.

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 != true) _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 == false)
        {//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).

Uwagi dotyczące dziedziczenia

Implementacje klas, które pochodzą z PropertyMetadata , 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 flagowego, 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 już zdefiniowanych na typie PropertyMetadata .

Dokładne zachowanie scalania jest do Ciebie. Możesz wybrać połączone 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ż