Bagikan melalui


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