Bagikan melalui


PropertyMetadata Kelas

Definisi

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
Object IInspectable PropertyMetadata
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.

Berlaku untuk

Lihat juga