Apa itu properti ketergantungan di .Net (terutama dalam konteks WPF). Apa bedanya dengan properti biasa?
136
Apa itu properti ketergantungan di .Net (terutama dalam konteks WPF). Apa bedanya dengan properti biasa?
Properti dependensi adalah properti kelas yang diturunkan dari DependencyObject, dan properti itu spesial daripada hanya menggunakan bidang dukungan untuk menyimpan nilainya, mereka menggunakan beberapa metode pembantu pada DependencyObject.
Hal terbaik tentang mereka adalah bahwa mereka memiliki semua pipa untuk mengikat data di dalamnya. Jika Anda mengikat sesuatu kepada mereka, mereka akan memberi tahu ketika mereka berubah.
Satu-satunya penjelasan yang menurut saya bermanfaat dan ditulis dengan baik adalah yang ini: http://www.wpftutorial.net/dependencyproperties.html
Pada dasarnya, DependencyProperties berbeda dari properti biasa karena mereka bukan hanya penyetel / pengambil untuk bidang di kelas, tetapi juga mengambil nilai aktualnya secara dinamis selama waktu proses. The
SetValue()
metode DP adalah cukup sederhana dan menetapkan nilai lokal dari properti dengan nilai yang Anda berikan. Namun, saat Anda mencobaGetValue()
dari DependencyProperty, pertama-tama akan mencari nilai lokal, jika tidak ada (yang layak di DependencyProperties tidak seperti properti biasa) itu akan melanjutkan pohon UI logis sampai akan menemukan nilai tersebut. Jika framework telah mencapai puncak pohon tanpa menemukan nilai lokal apa pun, kerangka kerja akan menggunakan nilai default yang telah ditentukan sebelumnya sebagai nilai properti.Metode ini memungkinkan DependencyProperties mengonsumsi lebih sedikit memori daripada properti biasa karena hanya nilai yang ditetapkan secara eksplisit oleh pengguna yang akan disimpan secara lokal.
Dan, seperti yang disebutkan di atas, DependencyProperties juga memungkinkan kita mengikatnya dalam kode XAML dan menyetel pemicu padanya, yang pada properti reguler tidak diizinkan.
Saya harap saya berhasil menghilangkan beberapa ketidakjelasan :)
sumber
Grid.Row="1"
on aButton
akan mengaturnya menjadi Baris # 2 pada indukGrid
(karena fakta bahwa baris berbasis nol) tetapiRow
DependencyProperty milikGrid
objek.DependencyProperties also allow us to bind to them in the XAML code and set triggers on them, which on regular properties is not allowed
, apakah maksud Anda mengikat XAML dan menyetel pemicu atau hanya menyetel pemicu tidak diperbolehkan. Terima kasih atas tindak lanjutnya dan membantu memperjelas semuanya!Value
properti (Bukan DP) dengan nilai 0 dan Anda ingin tampilan Anda melakukan sesuatu saatValue
diubah ke 1. Anda akan dapat melakukannya dengan menggunakanDataTrigger
dan menyetelBinding={Binding Path=Value, Value=1}
http://techpunch.wordpress.com/2008/09/25/wpf-wf-what-is-a-dependency-property/ memberikan penjelasan yang baik tentang properti ketergantungan baik dalam konteks WF dan WPF.
Kutipan:
sumber