Condividi tramite


Estensione del markup TemplateBinding

Aggiornamento: novembre 2007

Collega il valore di una proprietà in un modello di controllo come valore di un'altra proprietà esposta 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 Esempi di ControlTemplate.

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 Set, tramite espressioni valutate, mentre l'utilizzo della sintassi dell'elemento oggetto per TemplateBinding viene 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 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 è necessario utilizzare caratteri di escape per i valori di attributo per non utilizzarli come valori letterali o nomi dei gestori e tale requisito è più globale rispetto al semplice utilizzo di convertitori di tipi su alcuni tipi o proprietà. Tutte le estensioni di markup di XAML utilizzano i caratteri { e } nella relativa sintassi per gli attributi e grazie a questa convenzione il processore XAML riconosce che l'attributo deve essere elaborato da un'estensione di markup. Per ulteriori informazioni, vedere Estensioni di markup e XAML.

Vedere anche

Concetti

Applicazione di stili e modelli

Cenni preliminari su XAML

Estensioni di markup e XAML

Riferimenti

Estensione del markup RelativeSource

Associazione dell'estensione di markup

Style

ControlTemplate