Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee koppelt u de waarde van een eigenschap in een besturingselementsjabloon aan de waarde van een andere weergegeven eigenschap op het besturingselement met sjabloon. TemplateBinding kan alleen worden gebruikt binnen een ControlTemplate-definitie in XAML.
XAML-kenmerkgebruik
<object propertyName="{TemplateBinding sourceProperty}" .../>
XAML-kenmerkgebruik (voor setter-eigenschap in sjabloon of stijl)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" .../>
XAML-waarden
| Termijn | Description |
|---|---|
| eigenschapsnaam | De naam van de eigenschap die wordt ingesteld in de settersyntaxis. Dit moet een afhankelijkheidseigenschap zijn. |
| bronEigenschap | De naam van een andere afhankelijkheidseigenschap die bestaat voor het type dat wordt gesjabloond. |
Opmerkingen
Het gebruik van TemplateBinding is een fundamenteel onderdeel van de wijze waarop u een besturingssjabloon definieert, hetzij als u een auteur van een aangepast besturingselement bent of als u een besturingssjabloon vervangt voor bestaande besturingselementen. Zie Besturingssjablonen voor meer informatie.
Het is vrij gebruikelijk voor propertyName en targetProperty om dezelfde eigenschapsnaam te gebruiken. In dit geval kan een besturingselement een eigenschap op zichzelf definiëren en de eigenschap doorsturen naar een bestaande en intuïtief benoemde eigenschap van een van de onderdelen ervan. Een besturingselement dat bijvoorbeeld een TextBlock bevat in de compositing, die wordt gebruikt om de eigen eigenschap Text van het besturingselement weer te geven, kan deze XAML bevatten als onderdeel van de besturingselementsjabloon: <TextBlock Text="{TemplateBinding Text}" .... />
De typen die worden gebruikt als de waarde voor de broneigenschap en de doeleigenschap moeten overeenkomen. Er is geen mogelijkheid om een conversieprogramma te introduceren wanneer u TemplateBinding gebruikt. Bij het parseren van de XAML leidt het niet overeenkomen van de waarden tot een fout. Als u een omzetter nodig hebt, kunt u de uitgebreide syntaxis voor een sjabloonbinding gebruiken, zoals bijvoorbeeld: {Binding RelativeSource={RelativeSource TemplatedParent}, Converter="..." ...}
Als u een TemplateBinding buiten een ControlTemplate-definitie in XAML probeert te gebruiken, treedt er een parserfout op.
U kunt TemplateBinding gebruiken voor situaties waarin de waarde van de bovenliggende sjabloon ook wordt uitgesteld als een andere binding. De evaluatie voor TemplateBinding kan wachten totdat vereiste runtimebindingen waarden hebben.
Een TemplateBinding is altijd een eenrichtingsbinding. Beide betrokken eigenschappen moeten afhankelijkheidseigenschappen zijn.
TemplateBinding is een markeringsextensie. Markup-extensies worden doorgaans geïmplementeerd wanneer er een vereiste is om kenmerkwaarden te ontsnappen naar andere dan letterlijke waarden of handlernamen, en de vereiste is meer globaal dan alleen het toepassen van typeconverters op bepaalde typen of eigenschappen. Alle markeringsextensies in XAML gebruiken de tekens {en }in hun kenmerksyntaxis. Dit is de conventie waarmee een XAML-processor herkent dat een markeringsextensie het kenmerk moet verwerken.
Notitie In de implementatie van de Windows Runtime XAML-processor is er geen back-upklasseweergave voor TemplateBinding. TemplateBinding is uitsluitend bedoeld voor gebruik in XAML-markeringen. Er is geen eenvoudige manier om het gedrag in code te reproduceren.
x:Bind in ControlTemplate
Opmerking
Voor het gebruik van x:Bind in een ControlTemplate is Windows 10 versie 1809 (SDK 17763) of hoger vereist. Zie Adaptieve versiecode voor meer informatie over doelversies.
Vanaf Windows 10, versie 1809, kunt u de x : Bind-markeringsextensie overal gebruiken waar u TemplateBinding in een ControlTemplate gebruikt.
De eigenschap TargetType is vereist (niet optioneel) in ControlTemplate wanneer x:Bind wordt gebruikt.
Met x:Bind-ondersteuning kunt u zowel functiebindingen als tweerichtingsbindingen in een ControlTemplate gebruiken.
In dit voorbeeld wordt de eigenschap TextBlock.Text geëvalueerd in Button.Content.ToString. Het TargetType op de ControlTemplate fungeert als de gegevensbron en bereikt hetzelfde resultaat als een TemplateBinding naar de ouder.
<ControlTemplate TargetType="Button">
<Grid>
<TextBlock Text="{x:Bind Content, Mode=OneWay}"/>
</Grid>
</ControlTemplate>
Verwante onderwerpen
Windows developer