PropertyMetadata.IsSealed Properti

Definisi

Mendapatkan nilai yang menentukan apakah metadata telah diterapkan ke properti dalam beberapa cara, menghasilkan status instans metadata yang tidak dapat diubah.

protected:
 property bool IsSealed { bool get(); };
protected bool IsSealed { get; }
member this.IsSealed : bool
Protected ReadOnly Property IsSealed As Boolean

Nilai Properti

true jika instans metadata tidak dapat diubah; jika tidak, false.

Contoh

Contoh berikut memeriksa IsSealed sebelum operasi set properti metadata kustom.

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;
        }
    }
}

Keterangan

Berbagai properti PropertyMetadata, seperti DefaultValue, didefinisikan dalam model objek sebagai baca-tulis. Ini agar properti tersebut dapat disesuaikan setelah inisialisasi objek itu PropertyMetadata sendiri. Namun, setelah metadata diterapkan ke properti dependensi sebagai bagian dari panggilan ke Register, , AddOwneratau OverrideMetadata, sistem properti akan menyegel instans metadata tersebut dan properti sekarang dianggap tidak dapat diubah. Pada saat salah satu panggilan ini, OnApply dipanggil, dan nilai properti ini diatur ke true.

Berlaku untuk

Lihat juga