Compartir a través de


PropertyMetadata.IsSealed Propiedad

Definición

Obtiene un valor que determina si se han aplicado los metadatos a una propiedad de alguna manera, lo que ha producido el estado inmutable de esta instancia de metadatos.

protected:
 property bool IsSealed { bool get(); };
protected bool IsSealed { get; }
member this.IsSealed : bool
Protected ReadOnly Property IsSealed As Boolean

Valor de propiedad

Boolean

true si la instancia de metadatos es inmutable; de lo contrario, false.

Ejemplos

En el ejemplo siguiente se comprueban IsSealed antes de una operación de conjunto de una propiedad de metadatos personalizada.

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

Varias propiedades de PropertyMetadata, como DefaultValue, se definen en el modelo de objetos como lectura y escritura. Esto es para que esas propiedades se puedan ajustar después de la inicialización del PropertyMetadata propio objeto. Sin embargo, una vez que los metadatos se aplican a una propiedad de dependencia como parte de una llamada a Register, AddOwnero OverrideMetadata, el sistema de propiedades sellará que la instancia de metadatos y las propiedades ahora se consideran inmutables. En el momento de una de estas llamadas, OnApply se llama a y el valor de esta propiedad se establece en true.

Se aplica a

Consulte también