Estensione del markup TemplateBinding

Collega il valore di una proprietà in un modello di controllo come valore di una proprietà sul controllo basato su modelli.

Utilizzo della sintassi XAML per gli attributi

<object property="{TemplateBinding targetProperty}" .../>

Utilizzo dell'attributo XAML (per proprietà Set in modelli o stili)

<Setter Property="propertyName" Value="{TemplateBinding targetProperty}" .../>

Valori XAML

propertyName

DependencyProperty.Name della proprietà impostato nella sintassi Set.

targetProperty

Proprietà di dipendenza esistente nel tipo basato su modelli, specificata da DependencyProperty.Name.

-oppure-

Nome della proprietà puntato definito da un tipo diverso rispetto al tipo di destinazione basato su modelli. Si tratta in effetti di un oggetto PropertyPath. Vedere Sintassi XAML di PropertyPath.

Note

TemplateBinding è un formato ottimizzato di associazione per gli scenari di modelli, analogo a un'Binding costruita con {Binding RelativeSource={RelativeSource TemplatedParent}}.

RelativeSource è un'altra estensione di markup talvolta è utilizzata con o in sostituzione di TemplateBinding per eseguire l'associazione di proprietà in un modello.

La descrizione dei modelli di controllo come concetto non viene trattata in questo argomento; per ulteriori informazioni, vedere Stili e modelli di Control.

La sintassi per gli attributi è quella più comunemente utilizzata con questa estensione di markup. Il token di stringa fornito dopo la stringa dell'identificatore TemplateBinding viene assegnato come valore Property della classe dell'estensione TemplateBindingExtension sottostante.

La sintassi di elementi oggetto è possibile, ma non viene illustrata poiché non ha applicazioni realistiche. TemplateBinding viene utilizzato per riempire valori all'interno di setter, tramite espressioni valutate, mentre la sintassi dell'elemento oggetto per TemplateBinding utilizzata per riempire la sintassi dell'elemento proprietà <Setter.Property> è inutilmente dettagliata.

L'oggetto TemplateBinding può anche essere utilizzato per un utilizzo dettagliato degli attributi che consente di specificare la proprietà Property come coppia proprietà=valore:

<object property="{TemplateBinding Property=targetProperty}" .../>

L'utilizzo dettagliato spesso è utile per le estensioni con più proprietà da impostare o nel caso in cui alcune proprietà siano facoltative. Poiché TemplateBinding presenta una sola proprietà da impostare, obbligatoria, l'utilizzo dettagliato non è tipico.

Nell'implementazione del processore XAML WPF, la gestione di questa estensione di markup viene definita dalla classe TemplateBindingExtension.

TemplateBinding è un'estensione di markup. Le estensioni di markup in genere vengono implementate quando per i valori dell'attributo devono essere utilizzati caratteri escape in modo che non vengano considerati come valori letterali o nomi di gestori e il requisito è più globale del semplice utilizzo di convertitori dei tipi su alcuni tipi o proprietà. Per tutte le estensioni di markup in XAML vengono utilizzati i caratteri { e } nella relativa sintassi degli attributi, vale a dire la convenzione in base alla quale il processore XAML riconosce che l'attributo deve essere elaborato da un'estensione di markup. Per ulteriori informazioni, vedere Estensioni di markup e XAML WPF.

Vedere anche

Riferimenti

Estensione del markup RelativeSource

Associazione dell'estensione di markup

Style

ControlTemplate

Concetti

Applicazione di stili e modelli

Cenni preliminari su XAML (WPF)

Estensioni di markup e XAML WPF