Поделиться через


Расширение разметки TemplateBinding

Обновлен: Ноябрь 2007

Устанавливает ссылку на значение свойства в шаблоне элемента управления, чтобы оно было значением для другого предоставленного свойства элемента управления-шаблона.

Использование атрибута XAML

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

Использование атрибута XAML (для свойства Setter в шаблоне или стиле)

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

Значения XAML

propertyName

DependencyProperty.Name для свойства устанавливается в синтаксисе Setter.

targetProperty

Свойство зависимостей для типа, который используется в качестве шаблона, задается с помощью DependencyProperty.Name.

или

«Краткое» имя свойства, которое определяется типом, отличным от целевого шаблонного типа. Это в действительности PropertyPath. См. Синтаксис PropertyPath XAML.

Заметки

TemplateBinding является оптимизированной формой Binding для сценариев шаблона, аналогичных Binding, созданной с помощью {Binding RelativeSource={RelativeSource TemplatedParent}}.

RelativeSource является другим расширением разметки, которое иногда используется в сочетании или вместо TemplateBinding для выполнения относительной привязки свойства в шаблоне.

Шаблоны элементов управления в данном разделе не рассматриваются. Дополнительные сведения см. в разделе Примеры ControlTemplate.

Синтаксис атрибута является наиболее распространенным синтаксисом, используемым с этим расширением разметки. Маркер строки, указанный после идентификатора строки TemplateBinding, получает значение Property базового класса расширения TemplateBindingExtension.

Синтаксис элемента объекта является маловероятным, но он не рассматривается из-за отсутствия практического применения. TemplateBinding используется для заполнения значений в Setter с помощью вычисленных выражений. Использование синтаксиса элемента объекта для TemplateBinding для заполнения синтаксиса элемента свойства <Setter.Property> является излишним.

Излишним может оказаться использование TemplateBinding в атрибуте, в котором свойство Property определено как пара «свойство = значение».

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

Это часто применяется для расширений, которые имеют несколько устанавливаемых свойств, или если некоторые свойства являются необязательными. Так как TemplateBinding имеет только одно устанавливаемое свойство, которое является обязательным, это использование не является типичным.

В реализации процессора WPF XAML обработка данного расширения разметки определяется классом TemplateBindingExtension.

TemplateBinding является расширением разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется не только простая настройка преобразователей типов на работу с определенными типами или свойствами. Все расширения разметки в XAML используют символы { and } в синтаксисе их атрибутов, который является соглашением, по которому процессор XAML узнает, что расширение разметки должно обработать атрибут. Дополнительные сведения см. в разделе Расширения разметки и XAML.

См. также

Основные понятия

Стилизация и использование шаблонов

Общие сведения о XAML

Расширения разметки и XAML

Ссылки

Расширение разметки RelativeSource

Привязка расширения разметки

Style

ControlTemplate