Aracılığıyla paylaş


Nasıl yapılır: Bağımlılık Özelliği Uygulama

Bu örnekte, ortak dil çalışma zamanı (CLR) özelliğinin bir DependencyProperty alanla nasıl desteklenmeleri ve bu nedenle bağımlılık özelliğinin tanımlanması gösterilmektedir. Kendi özelliklerinizi tanımlayıp stiller, veri bağlama, devralma, animasyon ve varsayılan değerler dahil olmak üzere Windows Presentation Foundation (WPF) işlevselliğinin birçok yönünü desteklemelerini istediğinizde, bunları bağımlılık özelliği olarak uygulamanız gerekir.

Örnek

Aşağıdaki örnek önce yöntemini çağırarak Register bir bağımlılık özelliğini kaydeder. Bağımlılık özelliğinin adını ve özelliklerini depolamak için kullandığınız tanımlayıcı alanının adı, çağrısının Register bir parçası olarak bağımlılık özelliği için seçtiğiniz, değişmez değer dizesiyle Propertyeklenmiş olmalıdırName. Örneğin, bir bağımlılık özelliğini ile kaydederseniz, bağımlılık özelliği NameLocationiçin tanımladığınız tanımlayıcı alanı olarak adlandırılmalıdır LocationProperty.

Bu örnekte bağımlılık özelliğinin adı ve CLR erişimcisi şöyledir State; tanımlayıcı alanıdır StateProperty; özelliğin türü ; Booleanbağımlılık özelliğini kaydeden tür ise şeklindedir MyStateControl.

Bu adlandırma desenini izlemezseniz tasarımcılar özelliğinizi doğru raporlamayabilir ve özellik sistemi stili uygulamasının belirli yönleri beklendiği gibi davranmayabilir.

Bağımlılık özelliği için varsayılan meta verileri de belirtebilirsiniz. Bu örnek, bağımlılık özelliğinin State varsayılan değerini olarak falsekaydeder.

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

Bir CLR özelliğini özel bir alanla yedeklemenin aksine 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.