Procedura: registrare una proprietà associata

In questo esempio viene mostrato come registrare una proprietà associata e fornire funzioni di accesso pubbliche, in modo da poter utilizzare la proprietà sia in Extensible Application Markup Language (XAML), sia nel codice. Le proprietà associate rappresentano un concetto della sintassi definito da Extensible Application Markup Language (XAML). La maggior parte delle proprietà associate per i tipi WPF viene anche implementata come proprietà di dipendenza. È possibile utilizzare le proprietà di dipendenza in qualsiasi tipo DependencyObject.

Esempio

Nell'esempio seguente viene mostrato come registrare una proprietà associata come proprietà di dipendenza utilizzando il metodo RegisterAttached. La classe di provider può fornire metadati predefiniti per la proprietà applicabile quando la proprietà viene utilizzata in un'altra classe, a meno che tale classe esegua l'override dei metadati. In questo esempio, il valore predefinito della proprietà IsBubbleSource viene impostato su false.

La classe provider per una proprietà associata (anche se non è registrata come proprietà di dipendenza) deve fornire funzioni di accesso get e set statiche basate sulla convenzione di denominazione Set[NomeProprietàAssociata] e Get[NomeProprietàAssociata]. Queste funzioni di accesso sono necessarie per consentire al reader XAML in funzione di riconoscere la proprietà come attributo in XAML e risolvere i tipi appropriati. 

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
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);
}

Vedere anche

Riferimenti

DependencyProperty

Concetti

Cenni preliminari sulle proprietà di dipendenza

Proprietà Dependency personalizzate

Altre risorse

Procedure relative alle proprietà