Cara: Menerapkan Properti Dependensi
Contoh ini menunjukkan cara mendukung properti runtime bahasa umum (CLR) dengan DependencyProperty bidang, sehingga menentukan properti dependensi. Ketika Anda menentukan properti Anda sendiri dan ingin properti tersebut mendukung banyak aspek fungsionalitas Windows Presentation Foundation (WPF), termasuk gaya, pengikatan data, pewarisan, animasi, dan nilai default, Anda harus mengimplementasikannya sebagai properti dependensi.
Contoh
Contoh berikut terlebih dahulu mendaftarkan properti dependensi dengan memanggil Register metode . Nama bidang pengidentifikasi yang Anda gunakan untuk menyimpan nama dan karakteristik properti dependensi harus menjadi Name yang Anda pilih untuk properti dependensi sebagai bagian Register dari panggilan, ditambahkan oleh string harfiah Property
. Misalnya, jika Anda mendaftarkan properti dependensi dengan Name dari Location
, maka bidang pengidentifikasi yang Anda tentukan untuk properti dependensi harus diberi nama LocationProperty
.
Dalam contoh ini, nama properti dependensi dan aksesor CLR-nya adalah State
; bidang pengidentifikasi adalah StateProperty
; jenis properti adalah Boolean; dan jenis yang mendaftarkan properti dependensi adalah MyStateControl
.
Jika Anda gagal mengikuti pola penamaan ini, desainer mungkin tidak melaporkan properti Anda dengan benar, dan aspek tertentu dari aplikasi gaya sistem properti mungkin tidak berulah seperti yang diharapkan.
Anda juga dapat menentukan metadata default untuk properti dependensi. Contoh ini mendaftarkan nilai State
default properti dependensi menjadi false
.
public class MyStateControl : ButtonBase
{
public MyStateControl() : base() { }
public Boolean State
{
get { return (Boolean)this.GetValue(StateProperty); }
set { this.SetValue(StateProperty, value); }
}
public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
"State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}
Public Class MyStateControl
Inherits ButtonBase
Public Sub New()
MyBase.New()
End Sub
Public Property State() As Boolean
Get
Return CType(Me.GetValue(StateProperty), Boolean)
End Get
Set(ByVal value As Boolean)
Me.SetValue(StateProperty, value)
End Set
End Property
Public Shared ReadOnly StateProperty As DependencyProperty = DependencyProperty.Register("State", GetType(Boolean), GetType(MyStateControl),New PropertyMetadata(False))
End Class
Untuk informasi selengkapnya tentang bagaimana dan mengapa menerapkan properti dependensi, dibandingkan dengan hanya mendukung properti CLR dengan bidang privat, lihat Gambaran Umum Properti Dependensi.
Baca juga
.NET Desktop feedback