PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Method

Définition

Fusionne ces métadonnées avec les métadonnées de base.Merges this metadata with the base metadata.

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 PropertyMetadata PropertyMetadata PropertyMetadata

Métadonnées de base à fusionner avec les valeurs de cette instance.The base metadata to merge with this instance's values.

dp
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

Propriété de dépendance à laquelle ces métadonnées sont appliquées.The dependency property to which this metadata is being applied.

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é.The following example implements a merge for a custom metadata type that adds an additional property to the property metadata.

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 substituéesOverrideMetadata (méthode).This method is used internally when metadata is being overridden (OverrideMetadata method).

Notes pour les héritiers

Les implémentations de classe qui PropertyMetadata dérivent de doivent substituer cette méthode pour prendre en compte toutes les propriétés de métadonnées qu’elles ont ajoutées dans leurs implémentations.Class implementations that derive from PropertyMetadata should override this method to account for any metadata properties they have added in their implementations. Par exemple, votre implémentation peut avoir ajouté une nouvelle valeur d’énumération d’indicateurs Merge(PropertyMetadata, DependencyProperty) , et l’implémentation doit ensuite être en mesure de combiner ces indicateurs correctement.For instance, your implementation might have added a new flagwise enumeration value, and the Merge(PropertyMetadata, DependencyProperty) implementation should then be able to combine those flags correctly.

Appelez toujours l’implémentation de base avant votre code d’implémentation, car l’implémentation de base s’occupe de la fusion de toutes les propriétés PropertyMetadata déjà définies sur le type.Always call the base implementation prior to your implementation code, because the base implementation takes care of merging all the properties already defined on the PropertyMetadata type.

Le comportement exact de la fusion dépend de vous.The exact behavior of the merge is up to you. Vous pouvez choisir d’avoir des valeurs combinées, revenir à la valeur de base si les métadonnées dérivées étaient laissées à la valeur 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.You could choose to have values combined, revert to base value if the derived metadata were left at the default, or many other behaviors based on the types of properties you have added to your particular metadata class, and their meanings.

S’applique à

Voir aussi