PropertyMetadata.IsSealed Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che determina se i metadati sono stati applicati a una proprietà in qualche modo e di conseguenza lo stato dell'istanza di metadati è diventato non modificabile.
protected:
property bool IsSealed { bool get(); };
protected bool IsSealed { get; }
member this.IsSealed : bool
Protected ReadOnly Property IsSealed As Boolean
Valore della proprietà
true
se l'istanza di metadati non è modificabile; in caso contrario, false
.
Esempio
Nell'esempio seguente viene eseguito un controllo IsSealed prima di un'operazione set di una proprietà di metadati personalizzata.
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;
}
}
}
Commenti
Varie proprietà di PropertyMetadata, ad esempio DefaultValue, sono definite nel modello a oggetti come lettura/scrittura. Queste proprietà possono quindi essere modificate dopo l'inizializzazione dell'oggetto PropertyMetadata stesso. Tuttavia, dopo l'applicazione dei metadati a una proprietà di dipendenza come parte di una chiamata a Register, AddOwnero OverrideMetadata, il sistema di proprietà continuerà a bloccare l'istanza dei metadati e le proprietà ora sono considerate non modificabili. Al momento di una di queste chiamate, OnApply viene chiamato e il valore di questa proprietà è impostato su true
.