Привязка расширения разметки
Откладывает значение свойства значением привязкой к данным, создавая объект промежуточного выражения и интерпретируя контекст данных, который применяется к элементу и его привязке во время выполнения.
Использование выражений привязки
<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.