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 != 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;
}
}
}
注釈
オブジェクト モデルでは PropertyMetadata、読み取り/書き込みなど DefaultValue、さまざまなプロパティが定義されています。 これは、オブジェクト自体の初期化後にこれらのプロパティを PropertyMetadata 調整できるようにするためです。 ただし、メタデータが依存関係プロパティRegisterAddOwnerOverrideMetadataに適用されると、そのメタデータ インスタンスがプロパティ システムによってシールされ、プロパティが変更不可と見なされるようになりました。 これらの呼び出しのいずれかが呼び出されると、 OnApply このプロパティの値が true
.