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>Property
penamaan . 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
.NET Desktop feedback