Share via


PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Méthode

Définition

Fusionne ces métadonnées avec les métadonnées de 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)

Paramètres

baseMetadata
PropertyMetadata

Métadonnées de base à fusionner avec les valeurs de cette instance.

dp
DependencyProperty

Propriété de dépendance à laquelle ces métadonnées sont appliquées.

Exemples

L’exemple suivant implémente une fusion pour un type de métadonnées personnalisé qui ajoute une propriété supplémentaire aux métadonnées de propriété.

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

Remarques

Cette méthode est utilisée en interne lorsque les métadonnées sont remplacées (OverrideMetadata méthode).

Notes pour les héritiers

Les implémentations de classe qui dérivent doivent PropertyMetadata remplacer cette méthode pour tenir compte des propriétés de métadonnées qu’elles ont ajoutées dans leurs implémentations. Par exemple, votre implémentation a peut-être ajouté une nouvelle valeur d’énumération au niveau de l’indicateur, et l’implémentation Merge(PropertyMetadata, DependencyProperty) doit ensuite être en mesure de combiner correctement ces indicateurs.

Appelez toujours l’implémentation de base avant votre code d’implémentation, car l’implémentation de base s’occupe de fusionner toutes les propriétés déjà définies sur le PropertyMetadata type.

Le comportement exact de la fusion vous incombe. Vous pouvez choisir d’avoir des valeurs combinées, revenir à la valeur de base si les métadonnées dérivées ont été laissées par défaut, ou de nombreux autres comportements basés sur les types de propriétés que vous avez ajoutés à votre classe de métadonnées particulière et leurs significations.

S’applique à

Voir aussi