22 строки
889 B
Markdown
22 строки
889 B
Markdown
# Binding in a Control Template
|
|
|
|
When you're creating a control template and you want to bind to the templated parent you can use:
|
|
|
|
```markup
|
|
<TextBlock Name="tb" Text="{TemplateBinding Caption}"/>
|
|
|
|
<!-- Which is the same as -->
|
|
<TextBlock Name="tb" Text="{Binding Caption, RelativeSource={RelativeSource TemplatedParent}}"/>
|
|
```
|
|
|
|
Although the two syntaxes shown here are equivalent in this case, there is a difference. `TemplateBinding` accepts only a single property rather than a property path, so if you want to bind using a property path you must use the second syntax:
|
|
|
|
```markup
|
|
<!-- This WON'T work as TemplateBinding only accepts single properties -->
|
|
<TextBlock Name="tb" Text="{TemplateBinding Caption.Length}"/>
|
|
|
|
<!-- Instead this syntax must be used in this case -->
|
|
<TextBlock Name="tb" Text="{Binding Caption.Length, RelativeSource={RelativeSource TemplatedParent}}"/>
|
|
```
|
|
|