Привязка расширения разметки
Откладывает значение свойства значением привязкой к данным, создавая объект промежуточного выражения и интерпретируя контекст данных, который применяется к элементу и его привязке во время выполнения.
Использование выражений привязки
<object property="{Binding}" .../>
-or-
<object property="{Binding bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>
Заметки о синтаксисе
В этих синтаксисов []
и *
не являются литералами. Они являются частью нотации, чтобы указать, что ноль или более платформы=
значение пар, можно создать с помощью ,
разделитель между ними и предыдущими платформы =
значение пары.
Каких-либо свойств, перечисленных в разделе «Привязка свойства, можно будет задать с расширением Binding» может вместо этого задать с помощью атрибутов Binding объектного элемента. Тем не менее, не является полноценным использование расширения разметки из Binding, это просто XAML обработки атрибутов, задайте свойства среды CLR Binding класса. Другими словами <Binding
Свойство_привязки_1="
значение1 "[
bindPropN="
valueN "]*/>
— это эквивалентный синтаксис атрибутов Binding объекта использование элемента вместо Binding
использование выражений. Дополнительные сведения об использовании атрибута XAML конкретные свойства Binding, см. в разделе «Использование атрибута XAML» соответствующие свойства Binding в библиотеке классов .NET Framework.
Значения XAML
bindProp1, bindPropN |
Имя Binding или BindingBase задаваемого свойства. Не все Binding свойства можно задать с помощью Binding расширения и некоторые свойства могут устанавливаться в Binding выражение только с помощью дополнительные вложенные расширения разметки. Ознакомьтесь с разделом «Привязка свойства, можно будет задать с расширением Binding». |
value1, valueN |
Задаваемое значение свойства. Способ обработки значения атрибута в конечном счете, характерные для типа и логики конкретную Binding задаваемое свойство. |
path |
Строка пути, который задает неявный Binding.Path свойство. См. также синтаксис PropertyPath XAML. |
Неполное {Binding}
{Binding}
Использовании в «Использование выражений привязки» создает Binding объекта со значениями по умолчанию, включая начальные Binding.Path из null
. Это по-прежнему полезно во многих сценариях, поскольку созданный Binding может полагаться на ключевых свойств привязки например Binding.Path и Binding.Source задаваемое в контекст данных времени выполнения. Дополнительные сведения о концепцию контекста данных, см. в разделе привязки данных.
Неявный путь
Binding
Использует расширение разметки Binding.Path как концептуальной «свойство по умолчанию», где Path=
должен появляться в выражении. Если указать Binding
выражение с неявный путь неявный путь должно быть первым в выражении, до любого другого bindProp
= value
где Binding свойство указано по имени. Например: {Binding PathString}
, где PathString
— это строка, значение которого будет значение Binding.Path в Binding созданные расширения разметки. Можно добавить неявный путь с другими именованными свойствами после разделителя запятую, к примеру, {Binding LastName, Mode=TwoWay}
.
Свойства привязки, которые можно задать с помощью расширения привязки
Синтаксис, показанный в этом разделе использует универсальный bindProp
= value
аппроксимацией, поскольку имеется много свойств чтения и записи из BindingBase или Binding , можно задать с помощью Binding
расширение разметки / синтаксис выражения. Они могут задаваться в любом порядке, за исключением неявным Binding.Path. (Вы можете в явном виде Path=
, в этом случае его можно установить в любом порядке). По сути, можно задать ноль или несколько свойств в списке ниже, с помощью bindProp
= value
пар, разделенных запятыми.
Некоторые из этих значений свойств требуют типы объектов, которые не поддерживает собственный тип преобразование из текстового синтаксиса в XAML и таким образом требуется расширения разметки, чтобы задать в качестве значения атрибута. Проверьте в разделе "Использование атрибута XAML" в библиотеке классов .NET Framework для каждого свойства, Дополнительные сведения; Строка, используйте синтаксис атрибута XAML с или без дальнейшего расширения разметки использования является по сути таким же, как значение, указываемое в Binding
выражения, за исключением, не размещайте кавычки вокруг каждой bindProp
= value
в Binding
выражение.
BindingGroupName: строка, определяющая группу возможных привязки. Это — это понятие сравнительно сложный привязки; см. в разделе справочника, посвященных BindingGroupName.
BindsDirectlyToSource: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
.Converter: можно задать в качестве
bindProp
=value
строки в выражении, но для этого требуется ссылка на объект для значения, такие как расширение разметки StaticResource. В этом случае, значение является экземпляром класса пользовательский преобразователь.ConverterCulture: может задаваться в выражение в виде идентификатора на основе стандартов; см. в разделе справки по ConverterCulture.
ConverterParameter: можно задать в качестве
bindProp
=value
строки в выражение, но это зависит от типа параметра, переданного. Если передача ссылочного типа для значения, это использование требуется ссылка на объект, например вложенный расширение разметки StaticResource.ElementName: взаимно исключают друг друга и RelativeSource и Source; каждый из этих свойств привязки представляет определенную методологию привязки. См. в разделе Общие сведения о привязке данных.
FallbackValue: можно задать в качестве
bindProp
=value
строки в выражение, но это зависит от типа передаваемого значения. Если передача ссылочного типа, требуется ссылка на объект, например вложенный расширение разметки StaticResource.IsAsync: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
.Mode: значение является именем константы из BindingMode перечисления. Например,
{Binding Mode=OneWay}
.NotifyOnSourceUpdated: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
.NotifyOnTargetUpdated: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
.NotifyOnValidationError: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
.Path: строка, описывающая пути в объекте данных или общих объектов модели. Формат предоставляет несколько разных соглашений для обхода объектной модели, который не может быть адекватно описан в этом разделе. См. в разделе синтаксис PropertyPath XAML.
RelativeSource: взаимно исключают друг друга и с ElementName и Source; каждый из этих свойств привязки представляет определенную методологию привязки. См. в разделе Общие сведения о привязке данных. Требуется вложенный расширение разметки RelativeSource использования для указания значения.
Source: взаимно исключают друг друга и RelativeSource и ElementName; каждый из этих свойств привязки представляет определенную методологию привязки. См. в разделе Общие сведения о привязке данных. Обычно требуется использование вложенного расширения, расширение разметки StaticResource , ссылающийся на источник данных объекта из словаря ресурсов с ключом.
StringFormat: строка, описывающая соглашение формат строки для связанных данных. Это — это понятие сравнительно сложный привязки; см. в разделе справочника, посвященных StringFormat.
TargetNullValue: можно задать в качестве
bindProp
=value
строки в выражение, но это зависит от типа параметра, переданного. Если передача ссылочного типа для значения, требуется ссылка на объект, например вложенный расширение разметки StaticResource.UpdateSourceTrigger: значение является именем константы из UpdateSourceTrigger перечисления. Например,
{Binding UpdateSourceTrigger=LostFocus}
. Потенциально определенные элементы управления имеют разные значения по умолчанию для этого свойства привязки. См. раздел UpdateSourceTrigger.ValidatesOnDataErrors: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
. См. заметки.ValidatesOnExceptions: Логическое значение может быть либо
true
илиfalse
. Значение по умолчанию —false
. См. заметки.XPath: строка, описывающая путь в XMLDOM из источника данных XML. См. в разделе привязка к данным XML с помощью XMLDataProvider и запросов XPath.
Ниже приведены свойства Binding , нельзя задать с помощью Binding
расширение разметки /{Binding}
форма выражения.
UpdateSourceExceptionFilter: это свойство ожидает, что ссылка на реализацию обратного вызова. Обратные вызовы и методы, отличные от обработчиков событий нельзя ссылаться в синтаксисе XAML.
ValidationRules: свойство принимает базовую коллекцию ValidationRule объектов. Это можно выразить как элемент свойства в Binding объект элемента, но имеет не доступны метод разбора атрибута для использования в
Binding
выражение. См. в разделе справочника по ValidationRules.
Примечания
Important
С точки зрения приоритет свойств зависимостей Binding
выражение эквивалентно локально заданное значение. Если вы задано локальное значение для свойства, которое ранее было Binding
выражения, Binding
полностью удаляется. Дополнительные сведения см. в разделе Приоритет значений свойств зависимостей.
Описание привязки данных на базовом уровне не рассматривается в этом разделе. См. в разделе Общие сведения о привязке данных.
Note
MultiBinding и PriorityBinding не поддерживают XAML синтаксиса расширения. Можно использовать свойства элементов. См. в разделе справочные разделы по MultiBinding и PriorityBinding.
Логические значения для XAML учитывается регистр. Например можно указать либо {Binding NotifyOnValidationError=true}
или {Binding NotifyOnValidationError=True}
.
Привязки, которые включают в себя проверку данных обычно определяются явно Binding
элемент, а не как {Binding ...}
выражения, а параметр ValidatesOnDataErrors или ValidatesOnExceptions в выражении используется редко. Это обусловлено дополнительное свойство ValidationRules невозможно легко задать в виде выражения. Дополнительные сведения см. в разделе проверки привязки реализуют.
Binding
является расширением разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или обработчик имена и если требуется более, чем преобразователи типов с атрибутами для определенных типов или свойств. Все расширения разметки в XAML используют {
и }
символов в синтаксисе их атрибутов, который является соглашением, по которому обработчик XAML узнает, что расширение разметки должно обработать содержимое строки. Дополнительные сведения см. в разделе Расширения разметки и XAML WPF.
Binding
является расширением нетипичное разметки тем, что Binding класс, реализующий функциональные возможности расширения для реализации XAML в WPF также реализует несколько методов и свойств, которые не связаны с XAML. Другие элементы призваны сделать Binding более гибким, автономное класс, который можно решить многие сценарии привязки данных в дополнение к работает как расширение разметки XAML.