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 los metadatos se han aplicado a una propiedad de alguna manera, lo que da como resultado el estado inmutable de esa 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) _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
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 inicializar el 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.