PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Metodo

Definizione

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.

dp
DependencyProperty

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.

Si applica a

Vedi anche