Bağımlılık özelliği uygulama (WPF .NET)
Bu makalede, ortak dil çalışma zamanı (CLR) özelliğini yedeklemek için bir DependencyProperty alan kullanarak bağımlılık özelliğinin nasıl uygulandığı açıklanmaktadır. Bağımlılık özellikleri çeşitli gelişmiş Windows Presentation Foundation (WPF) özellik sistemi özelliklerini destekler. Bu özellikler stiller, veri bağlama, devralma, animasyon ve varsayılan değerleri içerir. Tanımladığınız özelliklerin bu özellikleri desteklemesini istiyorsanız, özelliklerinizi bağımlılık özelliği olarak uygulayın.
Örnek
Aşağıdaki örnekte yöntemini çağırarak bağımlılık özelliğinin nasıl kaydedildiği gösterilmektedir Register . Register
yöntemi bağımlılık özelliği tanımlayıcısı adlı bir örnek döndürürDependencyProperty. Tanımlayıcı bir static readonly
alanda depolanır ve bağımlılık özelliğinin adını ve özelliklerini tutar.
Tanımlayıcı alanı adlandırma kuralına uygun <property name>Property
olmalıdır. Örneğin, adlı Location
bir bağımlılık özelliği kaydederseniz, tanımlayıcı alanı olarak adlandırılmalıdır LocationProperty
. Bu adlandırma desenini izlemezseniz WPF tasarımcıları özelliğinizi doğru raporlamayabilir ve özellik sistemi stili uygulamasının yönleri beklendiği gibi davranmayabilir.
Aşağıdaki örnekte bağımlılık özelliğinin ve CLR erişimcisinin adı şeklindedir HasFish
, bu nedenle tanımlayıcı alanı olarak adlandırılır HasFishProperty
. Bağımlılık özellik türü ve Boolean bağımlılık özelliğini kaydeden sahip türü şeklindedir Aquarium
.
Bağımlılık özelliği için varsayılan meta verileri belirtebilirsiniz. Bu örnek, bağımlılık özelliği için HasFish
varsayılan değerini false
ayarlar.
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
Bir CLR özelliğini özel bir alanla yedeklemek yerine bağımlılık özelliğinin nasıl ve neden uygulandığı hakkında daha fazla bilgi için bkz . Bağımlılık özelliklerine genel bakış.
Ayrıca bkz.
.NET Desktop feedback