Jak zarejestrować dołączoną właściwość
W tym przykładzie pokazano, jak zarejestrować dołączoną właściwość i udostępnić publiczne metody dostępu, aby można było używać właściwości zarówno w języku XAML, jak i kodzie. Dołączone właściwości to koncepcja składni zdefiniowana przez język XAML. Większość dołączonych właściwości typów WPF jest również implementowana jako właściwości zależności. Właściwości zależności można używać na dowolnych DependencyObject typach.
Przykład
W poniższym przykładzie pokazano, jak zarejestrować dołączoną właściwość jako właściwość zależności przy użyciu RegisterAttached metody . Klasa dostawcy ma możliwość podania domyślnych metadanych dla właściwości, która ma zastosowanie, gdy właściwość jest używana w innej klasie, chyba że ta klasa zastępuje metadane. W tym przykładzie wartość IsBubbleSource
domyślna właściwości jest ustawiona na false
wartość .
Klasa dostawcy dla dołączonej właściwości (nawet jeśli nie jest zarejestrowana jako właściwość zależności) musi zapewnić statyczne metody pobierania i ustawiania metod dostępu, które są zgodne z konwencją Set
nazewnictwa [AttachedPropertyName] i Get
[AttachedPropertyName]. Te metody dostępu są wymagane, aby działający czytnik XAML mógł rozpoznać właściwość jako atrybut w języku XAML i rozpoznać odpowiednie typy.
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
Zobacz też
.NET Desktop feedback