PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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) _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)
{//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.