Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Связывает значение свойства в шаблоне элемента управления со значением другого свойства этого элемента управления.
Использование атрибута XAML
<object property="{TemplateBinding sourceProperty}" ... />
Использование атрибутов XAML (для свойства Setter в шаблоне или стиле)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />
Значения XAML
| Ценность | Описание |
|---|---|
propertyName |
DependencyProperty.Name свойства, заданного в синтаксисе задания. |
sourceProperty |
Другое свойство зависимостей, существующее в шаблоне типа, указанное DependencyProperty.Name. -или- Имя свойства "dotted-down", определенное по-другому типу, чем шаблонируемый целевой тип. Вообще-то это PropertyPath. См.синтаксиса PropertyPath XAML |
Замечания
TemplateBinding — это оптимизированная форма Binding для сценариев шаблонов, аналогичная Binding построенной с {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}.
TemplateBinding всегда является односторонней привязкой, даже если свойства, которые используются, по умолчанию предназначены для двусторонней привязки. Оба свойства должны быть свойствами зависимостей. Чтобы добиться двусторонней привязки к шаблонному родителю, используйте следующую инструкцию привязки вместо {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.
RelativeSource является другим расширением разметки, которое иногда используется в сочетании с или вместо TemplateBinding для выполнения относительной привязки свойств в шаблоне.
Описание шаблонов элементов управления как концепции не рассматривается здесь; Дополнительные сведения см. в разделе Стили и шаблоны элементов управления.
Синтаксис атрибутов — это наиболее распространенный синтаксис, используемый с этим расширением разметки. Строковый токен, предоставленный после строкового идентификатора TemplateBinding, назначается в качестве значения Property базового класса расширения TemplateBindingExtension.
Синтаксис элемента объекта возможен, но он не отображается, так как он не имеет реалистичного приложения.
TemplateBinding используется для заполнения значений в сеттерах, включая использование вычисляемых выражений и синтаксиса элемента объекта для TemplateBinding. Однако использование синтаксиса элемента свойства <Setter.Property> слишком многословно и необязательно.
TemplateBinding также можно использовать в атрибуте с подробным описанием, указывающем свойство Property в виде пары свойство=значение.
<object property="{TemplateBinding Property=sourceProperty}" ... />
Подробное описание часто полезно для расширений, имеющих больше одного настраиваемого свойства, или если некоторые свойства являются необязательными. Так как TemplateBinding имеет только одно настраиваемое свойство, и оно является обязательным, такой многословный способ использования не является типичным.
В реализации обработчика XAML WPF обработка этого расширения разметки определяется классом TemplateBindingExtension.
TemplateBinding — это расширение разметки. Расширения разметки обычно реализуются, если существует требование для исключения значений атрибутов, отличных от литеральных значений или имен обработчиков, и это требование является более общим, чем использование преобразователей типов для конкретных типов или свойств. Все расширения разметки в XAML используют { и } символы в синтаксисе атрибутов, что является соглашением, с помощью которого обработчик XAML распознает, что расширение разметки должно обрабатывать атрибут. Дополнительные сведения см. в разделе "Расширения разметки" и"WPF XAML".
См. также
- Style
- ControlTemplate
- Стилизация и шаблонирование
- XAML в WPF
- Расширения разметки и XAML WPF
- Расширение разметки RelativeSource
- Расширение привязки разметки
.NET Desktop feedback