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 に設定されます。