Aracılığıyla paylaş


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>Propertyolmalıdır. Örneğin, adlı Locationbir 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.