Bagikan melalui


Cara menerapkan properti dependensi (WPF .NET)

Artikel ini menjelaskan cara menerapkan properti dependensi dengan menggunakan DependencyProperty bidang 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 Register metode . Metode mengembalikan Register instans yang DependencyProperty disebut pengidentifikasi properti dependensi. Pengidentifikasi disimpan dalam static readonly bidang, dan menyimpan nama dan karakteristik properti dependensi.

Bidang pengidentifikasi harus mengikuti konvensi <property name>Propertypenamaan . 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 adalah 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 false default untuk HasFish properti dependensi.

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