Partilhar via


PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Método

Definição

Mescla esses metadados com os metadados 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)

Parâmetros

baseMetadata
PropertyMetadata

Os metadados de base a mesclar com valores dessa instância.

dp
DependencyProperty

A propriedade de dependência à qual estes metadados estão sendo aplicados.

Exemplos

O exemplo a seguir implementa uma mesclagem para um tipo de metadados personalizado que adiciona uma propriedade adicional aos metadados da propriedade.

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

Comentários

Esse método é usado internamente quando os metadados estão sendo substituídos (OverrideMetadata método).

Notas aos Herdeiros

As implementações de classe das PropertyMetadata quais derivam devem substituir esse método para considerar as propriedades de metadados que eles adicionaram em suas implementações. Por exemplo, sua implementação pode ter adicionado um novo valor de enumeração sinalizador e, em seguida, a Merge(PropertyMetadata, DependencyProperty) implementação deve ser capaz de combinar esses sinalizadores corretamente.

Sempre chame a implementação base antes do código de implementação, pois a implementação base cuida da mesclagem de todas as propriedades já definidas no PropertyMetadata tipo.

O comportamento exato da mesclagem cabe a você. Você pode optar por ter valores combinados, reverter para o valor base se os metadados derivados forem deixados no padrão ou muitos outros comportamentos com base nos tipos de propriedades que você adicionou à classe de metadados específica e seus significados.

Aplica-se a

Confira também