PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
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.