Procedura: registrare una proprietà associata

Aggiornamento: novembre 2007

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.

Nella classe di provider per una proprietà associata (anche se non è registrata come proprietà di dipendenza) devono essere fornite le funzioni di accesso get e set che seguono la convenzione di denominazione Set[NomeProprietàAssociata] e Get[NomeProprietàAssociata]. Queste funzioni di accesso sono necessarie affinché il lettore XAML in funzione possa riconoscere la proprietà come attributo di XAML e risolvere i tipi appropriati.

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

Concetti

Cenni preliminari sulle proprietà di dipendenza

Proprietà Dependency personalizzate

Riferimenti

DependencyProperty

Altre risorse

Procedure relative alle proprietà

Esempi di proprietà