Yanıtlar:
Bağımlılık özellikleri, DependencyObject öğesinden türetilen sınıfların özellikleridir ve değerlerini depolamak için yalnızca bir destek alanı kullanmak yerine, DependencyObject üzerinde bazı yardımcı yöntemler kullanırlar.
Onlarla ilgili en güzel şey, veri bağlama için tüm tesisatlara sahip olmalarıdır. Onlara bir şey bağlarsanız, değiştiklerinde bunu bildireceklerdir.
Yararlı ve iyi yazılmış bulduğum tek açıklama şudur: http://www.wpftutorial.net/dependencyproperties.html
Temel olarak, DependencyProperties, sınıftaki alanlar için yalnızca ayarlayıcı / alıcı değil, aynı zamanda gerçek değerlerini çalışma sırasında dinamik olarak almaları nedeniyle normal özelliklerden farklıdır. SetValue()
Görüntü yönetmenleri yöntem oldukça basittir ve bunu verdi değere özelliğinin yerel değerini ayarlar. Ancak, GetValue()
bir DependencyProperty denediğinizde , ilk önce yerel bir değer arayacaktır, eğer hiçbiri yoksa (normal özelliklerin aksine DependencyProperties'de uygulanabilir), bu tür bir değer bulana kadar mantıksal UI ağacına kadar devam edecektir. Çerçeve herhangi bir yerel değer bulmadan ağacın tepesine ulaşmışsa, özelliğin değeri olarak önceden tanımlanmış bir varsayılan değer kullanır.
Bu yöntem, yalnızca kullanıcı tarafından açıkça ayarlanan değerler yerel olarak depolanacağı için DependencyProperties'in normal özelliklerden daha az bellek tüketmesine izin verir.
Ve yukarıda belirtildiği gibi, DependencyProperties ayrıca XAML kodunda onlara bağlanmamıza ve bunlar üzerinde normal özelliklere izin verilmeyen tetikleyiciler ayarlamamıza izin verir.
Umarım bazı belirsizlikleri temizlemeyi başardım :)
Grid.Row="1"
bir Button
istekte, üst Grid
satırda Satır # 2'de olacak şekilde ayarlanır (satırların sıfır temelli olması nedeniyle), ancak Row
DependencyProperty Grid
nesneye aittir .
DependencyProperties also allow us to bind to them in the XAML code and set triggers on them, which on regular properties is not allowed
, hem XAML'de bağlanmaya hem de tetikleyicileri ayarlamaya mı, yoksa yalnızca tetikleyicileri ayarlamaya izin mi verdiniz? Takip ettiğiniz ve işleri daha net hale getirdiğiniz için teşekkür ederiz!
Value
0 değerine sahip özelliğini (Not DP) ve zaman görünümü bir şey yapmak istiyorum Value
1'e değişiklikler kullanarak bunu yapmak mümkün olacak DataTrigger
ve ayarBinding={Binding Path=Value, Value=1}
http://techpunch.wordpress.com/2008/09/25/wpf-wf-what-is-a-dependency-property/ , hem WF hem de WPF bağlamında bağımlılık özelliklerinin iyi bir açıklamasını sunar.
Bir alıntı:
Önemli Nokta - Bağımlılık Özelliklerinin Değeri Çözüldü
Bir bağımlılık mülkünün nihai amacı, herhangi bir mülk gibi, devleti yönetmektir. Ancak normal .Net özelliklerinin aksine, yerel özellik değeri bir örnek değişkeninde depolanmaz.
Bunun yerine, bağımlılık özellikleri bağımlılık özelliği çerçevesine kaydedilir ve temeldeki özellik değeri çözümlenir - yani değer, özellik kaydı tarafından tanımlanan kurallara dayalı olarak bağımlılık özelliği çerçevesi tarafından belirlenir.