PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Unisce i metadati con i metadati di base.
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)
Parametri
- baseMetadata
- PropertyMetadata
Metadati di base da unire con i valori dell'istanza.
Proprietà di dipendenza alla quale vengono applicati i metadati.
Esempio
Nell'esempio seguente viene implementata un'unione per un tipo di metadati personalizzato che aggiunge una proprietà aggiuntiva ai metadati della proprietà.
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;
}
}
}
Commenti
Questo metodo viene usato internamente quando i metadati vengono sottoposti a override (OverrideMetadata metodo).
Note per gli eredi
Le implementazioni di classe che derivano da PropertyMetadata devono eseguire l'override di questo metodo per tenere conto delle proprietà dei metadati aggiunte nelle implementazioni. Ad esempio, l'implementazione potrebbe aver aggiunto un nuovo valore di enumerazione flag per flag e l'implementazione Merge(PropertyMetadata, DependencyProperty) dovrebbe quindi essere in grado di combinare correttamente tali flag.
Chiamare sempre l'implementazione di base prima del codice di implementazione, perché l'implementazione di base si occupa dell'unione di tutte le proprietà già definite nel PropertyMetadata tipo.
Il comportamento esatto dell'unione spetta all'utente. È possibile scegliere di combinare valori, ripristinare il valore di base se i metadati derivati sono rimasti all'impostazione predefinita o molti altri comportamenti in base ai tipi di proprietà aggiunti alla classe di metadati specifica e ai relativi significati.