PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Método

Definición

Combina estos metadatos con los metadatos 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)

Parámetros

baseMetadata
PropertyMetadata

Metadatos base para combinar con los valores de esta instancia.

dp
DependencyProperty

Propiedad de dependencia a la que se aplican estos metadatos.

Ejemplos

En el ejemplo siguiente se implementa una combinación para un tipo de metadatos personalizado que agrega una propiedad adicional a los metadatos de propiedad.

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

Comentarios

Este método se usa internamente cuando los metadatos se reemplazan (OverrideMetadata método ).

Notas a los desarrolladores de herederos

Las implementaciones de clase que derivan de PropertyMetadata deben invalidar este método para tener en cuenta las propiedades de metadatos que han agregado en sus implementaciones. Por ejemplo, la implementación podría haber agregado un nuevo valor de enumeración flagwise y la Merge(PropertyMetadata, DependencyProperty) implementación debería poder combinar esas marcas correctamente.

Llame siempre a la implementación base antes del código de implementación, ya que la implementación base se encarga de combinar todas las propiedades ya definidas en el PropertyMetadata tipo.

El comportamiento exacto de la combinación es para usted. Puede optar por combinar valores, revertir al valor base si los metadatos derivados se han dejado en el valor predeterminado, o muchos otros comportamientos basados en los tipos de propiedades que ha agregado a la clase de metadatos determinada y sus significados.

Se aplica a

Consulte también