PropertyMetadata.IsSealed Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá hodnotu, která určuje, zda metadata byla použita na vlastnost nějakým způsobem, což vede k neměnném stavu dané instance metadat.
protected:
property bool IsSealed { bool get(); };
protected bool IsSealed { get; }
member this.IsSealed : bool
Protected ReadOnly Property IsSealed As Boolean
Hodnota vlastnosti
true
pokud je instance metadat neměnná; v opačném případě . false
Příklady
Následující příklad zkontroluje IsSealed před nastavenou operací vlastní vlastnosti metadat.
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;
}
}
}
Poznámky
Různé vlastnosti , například DefaultValue, jsou definovány PropertyMetadatav objektovém modelu jako čtení-zápis. To znamená, že tyto vlastnosti lze upravit po inicializaci samotného objektu PropertyMetadata . Jakmile se však metadata použijí na vlastnost závislosti v rámci volání Register, AddOwnernebo OverrideMetadata, systém vlastností zapečetí, že instance metadat a vlastnosti jsou nyní považovány za neměnné. V době jednoho z těchto volání se OnApply volá a hodnota této vlastnosti je nastavena na true
.