PropertyMetadata Kelas
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.
Mendefinisikan aspek perilaku properti dependensi, termasuk kondisi yang terdaftar dengannya. Untuk informasi selengkapnya tentang bagaimana PropertyMetadata digunakan untuk properti dependensi, lihat Properti dependensi kustom.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
- Warisan
- Atribut
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Contoh
Contoh ini memanggil konstruktor PropertyMetadata(Object), yang membuat PropertyMetadata yang melaporkan nilai default untuk DependencyProperty. PropertyMetadata kemudian digunakan untuk pendaftaran properti terlampir saat RegisterAttached dipanggil .
public abstract class AquariumServices : DependencyObject
{
public enum Buoyancy {Floats,Sinks,Drifts}
public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
"Buoyancy",
typeof(Buoyancy),
typeof(AquariumServices),
new PropertyMetadata(Buoyancy.Floats)
);
public static void SetBuoyancy(DependencyObject element, Buoyancy value)
{
element.SetValue(BuoyancyProperty, value);
}
public static Buoyancy GetBuoyancy(DependencyObject element)
{
return (Buoyancy)element.GetValue(BuoyancyProperty);
}
}
Public Class AquariumServices
Inherits DependencyObject
Public Enum Buoyancy
Floats
Sinks
Drifts
End Enum
Public Shared ReadOnly BuoyancyProperty As DependencyProperty = _
DependencyProperty.RegisterAttached(
"Buoyancy", _
GetType(Buoyancy), _
GetType(AquariumServices), _
New PropertyMetadata(Buoyancy.Floats))
Public Sub SetBuoyancy(element As DependencyObject, value As Buoyancy)
element.SetValue(BuoyancyProperty, value)
End Sub
Public Function GetBuoyancy(element As DependencyObject) As Buoyancy
GetBuoyancy = CType(element.GetValue(BuoyancyProperty), Buoyancy)
End Function
End Class
Keterangan
Menentukan instans PropertyMetadata adalah bagian dari skenario untuk menentukan properti dependensi kustom. Untuk info dan contoh, lihat Properti dependensi kustom.
Nilai PropertyMetadata mewakili dua aspek perilaku properti dependensi:
- Menyediakan nilai default, yang digunakan sebagai nilai properti kecuali jenis pemilik secara khusus menginisialisasi nilai, atau nilai diatur oleh kode pengguna atau mekanisme lainnya.
- Mereferensikan panggilan balik yang dipanggil jika sistem properti dependensi mendeteksi bahwa properti dependensi telah berubah. Biasanya, properti dependensi hanya memerlukan nilai PropertyMetadata jika salah satu atau kedua perilaku ini diinginkan. Jika tidak, nilai null dapat diteruskan untuk parameter propertyMetadata ketika properti dependensi terdaftar dengan sistem properti dependensi. Untuk informasi selengkapnya, lihat DependencyProperty.Register.
Jika PropertyMetadata Anda menyertakan referensi panggilan balik yang diubah properti, metode tersebut harus merupakan metode statis dari kelas yang mengekspos pengidentifikasi DependencyProperty tempat PropertyMetadata diterapkan. Cara menulis metode ini dijelaskan dalam Properti dependensi kustom dan juga topik referensi untuk delegasi PropertyChangedCallback .
Catatan
Setelah dibuat, instans PropertyMetadata tidak memiliki properti yang dapat digunakan untuk menemukan panggilan balik atau bahkan untuk menentukan nama metode panggilan balik. Informasi tersebut dianggap sebagai detail implementasi properti dependensi dan hanya sistem properti dependensi itu sendiri yang perlu dapat memanggil metode tersebut.
Membuat instans nilai PropertyMetadata
Ada dua metode yang dapat membuat instans PropertyMetadata: konstruktor, dan metode PropertyMetadata.Create statis. Masing-masing metode ini memiliki beberapa tanda tangan. Lebih umum menggunakan konstruktor. Namun, Anda harus menggunakan PropertyMetadata.Create jika Anda ingin mekanisme nilai default untuk properti dependensi Anda aman untuk utas. Untuk informasi selengkapnya, lihat bagian "Metadata properti untuk properti dependensi kustom" dari topik Properti dependensi kustom .
Konstruktor
PropertyMetadata(Object) |
Menginisialisasi instans baru kelas PropertyMetadata , menggunakan nilai default properti. |
PropertyMetadata(Object, PropertyChangedCallback) |
Menginisialisasi instans baru kelas PropertyMetadata , menggunakan nilai default properti dan referensi panggilan balik. |
Properti
CreateDefaultValueCallback |
Mendapatkan referensi ke metode panggilan balik yang menyediakan nilai properti default. |
DefaultValue |
Mendapatkan nilai default untuk properti dependensi. |
Metode
Create(CreateDefaultValueCallback) |
Membuat nilai PropertyMetadata , menentukan panggilan balik yang menetapkan nilai default untuk properti dependensi. |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
Membuat nilai PropertyMetadata , menentukan panggilan balik yang menetapkan nilai default untuk properti dependensi, dan panggilan balik yang diubah properti. |
Create(Object) |
Membuat nilai PropertyMetadata , menentukan nilai default tetap untuk properti dependensi. |
Create(Object, PropertyChangedCallback) |
Membuat nilai PropertyMetadata , menentukan nilai default tetap untuk properti dependensi, dan panggilan balik yang diubah properti. |