PropertyMetadata.IsSealed 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會得到一個值,判斷該中繼資料是否以某種方式套用到某屬性上,導致該中繼資料實例的不可變狀態。
protected:
property bool IsSealed { bool get(); };
protected bool IsSealed { get; }
member this.IsSealed : bool
Protected ReadOnly Property IsSealed As Boolean
屬性值
true若元資料實例是不可變的;否則,。 false
範例
以下範例在自訂元資料屬性的設定操作前進行 IsSealed 檢查。
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;
}
}
}
備註
物件模型中定義了 的 PropertyMetadata各種屬性,例如 DefaultValue,皆為讀寫方式。 這是為了在物件初始 PropertyMetadata 化後,可以調整這些屬性。 然而,一旦中繼資料被套用到相依屬性中,作為呼叫 Register、 AddOwner或 OverrideMetadata的一部分,屬性系統將封存該中繼資料實例,屬性則被視為不可變。 在其中一次呼叫時, OnApply 被調用,且此屬性的值設為 true。