Bagikan melalui


Cara menerapkan properti dependensi

Artikel ini menjelaskan cara menerapkan properti dependensi dengan menggunakan bidang DependencyProperty untuk mendukung properti runtime bahasa umum (CLR). Properti dependensi mendukung beberapa fitur sistem properti Windows Presentation Foundation (WPF) tingkat lanjut. Fitur-fitur ini termasuk gaya, pengikatan data, warisan, animasi, dan nilai default. Jika Anda ingin properti yang Anda tentukan untuk mendukung fitur tersebut, maka terapkan properti Anda sebagai properti dependensi.

Contoh

Contoh berikut menunjukkan cara mendaftarkan properti dependensi, dengan memanggil metode Register. Metode Register mengembalikan instans DependencyProperty yang disebut pengidentifikasi properti dependensi . Pengidentifikasi disimpan di bidang static readonly, dan menyimpan nama serta karakteristik properti dependensinya.

Bidang pengidentifikasi harus mengikuti konvensi penamaan <property name>Property. Misalnya, jika Anda mendaftarkan properti dependensi dengan nama Location, maka bidang pengidentifikasi harus diberi nama LocationProperty. Jika Anda gagal mengikuti pola penamaan ini, maka perancang WPF mungkin tidak melaporkan properti Anda dengan benar, dan aspek aplikasi gaya sistem properti mungkin tidak berulah seperti yang diharapkan.

Dalam contoh berikut, nama properti dependensi dan aksesor CLR-nya HasFish, sehingga bidang pengidentifikasi diberi nama HasFishProperty. Jenis properti dependensi adalah Boolean dan jenis pemilik yang mendaftarkan properti dependensi adalah Aquarium.

Anda dapat menentukan metadata default untuk properti dependensi. Contoh ini menetapkan nilai default false untuk properti dependensi HasFish.

public class Aquarium : DependencyObject
{
    public static readonly DependencyProperty HasFishProperty =
        DependencyProperty.Register(
            name: "HasFish",
            propertyType: typeof(bool),
            ownerType: typeof(Aquarium),
            typeMetadata: new FrameworkPropertyMetadata(defaultValue: false));

    public bool HasFish
    {
        get => (bool)GetValue(HasFishProperty);
        set => SetValue(HasFishProperty, value);
    }
}
Public Class Aquarium
    Inherits DependencyObject

    Public Shared ReadOnly HasFishProperty As DependencyProperty =
    DependencyProperty.Register(
        name:="HasFish",
        propertyType:=GetType(Boolean),
        ownerType:=GetType(Aquarium),
        typeMetadata:=New FrameworkPropertyMetadata(defaultValue:=False))

    Public Property HasFish As Boolean
        Get
            Return GetValue(HasFishProperty)
        End Get
        Set(value As Boolean)
            SetValue(HasFishProperty, value)
        End Set
    End Property

End Class

Untuk informasi selengkapnya tentang bagaimana dan mengapa menerapkan properti dependensi, daripada hanya mendukung properti CLR dengan bidang privat, lihat gambaran umum properti dependensi .

Lihat juga