Show / Hide Table of Contents

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

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

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

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

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

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

Значения XAML

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

-или-

"Краткое" имя свойства, которое определяется типом, отличным от целевого шаблонного типа. Фактически это PropertyPath. См. в разделе синтаксис PropertyPath XAML.

Примечания

Объект TemplateBinding является оптимизированной формой привязки для сценариев шаблонов, аналогично Binding создан с параметром {Binding RelativeSource={RelativeSource TemplatedParent}}. TemplateBinding всегда является односторонней привязкой, даже если используемые свойства по умолчанию используют двустороннюю привязку. Оба используемых свойства должны быть свойствами зависимостей. Чтобы добиться двухстороннюю привязку для шаблонного родительского элемента следующая инструкция привязки вместо этого используйте {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.

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

Шаблоны элементов управления в качестве концепции здесь нет; Дополнительные сведения см. в разделе управления стили и шаблоны.

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

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

TemplateBinding Можно также использовать в использовании атрибут verbose, который указывает Property как свойство = значение пары:

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

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

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

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

См. также

  • Style
  • ControlTemplate
  • Стилизация и использование шаблонов
  • Обзор XAML (WPF)
  • Расширения разметки и XAML WPF
  • Расширение разметки RelativeSource
  • Привязка расширения разметки
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX