PropertyMetadata.IsSealed Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.