PropertyMetadata.IsSealed Propiedad
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í.
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
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
.