Aracılığıyla paylaş


Nasıl yapılır: Ekli Özelliği Kaydetme

Bu örnekte, hem XAML'de hem de kodda özelliğini kullanabilmeniz için ekli bir özelliğin nasıl kaydedilip genel erişimcilerin nasıl sağlandığı gösterilir. Ekli özellikler, XAML tarafından tanımlanan bir söz dizimi kavramıdır. WPF türleri için ekli özelliklerin çoğu da bağımlılık özellikleri olarak uygulanır. Bağımlılık özelliklerini herhangi bir DependencyObject türde kullanabilirsiniz.

Örnek

Aşağıdaki örnekte, yöntemini kullanarak ekli bir özelliğin bağımlılık özelliği olarak nasıl kaydedildiği gösterilmektedir RegisterAttached . Sağlayıcı sınıfı, özellik başka bir sınıfta kullanıldığında geçerli olan özellik için varsayılan meta veriler sağlama seçeneğine sahiptir. Bu sınıf meta verileri geçersiz kılmadığı sürece. Bu örnekte özelliğin varsayılan değeri IsBubbleSource olarak falseayarlanır.

Ekli bir özelliğin sağlayıcı sınıfı (bağımlılık özelliği olarak kaydedilmemiş olsa bile) [AttachedPropertyName] ve [AttachedPropertyName] adlandırma kuralına Setuyan statik get ve Getset erişimcileri sağlamalıdır. Bu erişimciler, eylemci XAML okuyucusunun özelliği XAML'de öznitelik olarak tanıyabilmesi ve uygun türleri çözümleyebilmesi için gereklidir.

public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
  "IsBubbleSource",
  typeof(Boolean),
  typeof(AquariumObject),
  new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
  element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
  return (Boolean)element.GetValue(IsBubbleSourceProperty);
}
Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject), New FrameworkPropertyMetadata(False, FrameworkPropertyMetadataOptions.AffectsRender))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
    element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
    Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function

Ayrıca bkz.