Show / Hide Table of Contents

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

Откладывает значение свойства значением привязкой к данным, создавая объект промежуточного выражения и интерпретируя контекст данных, который применяется к элементу и его привязке во время выполнения.

Использование выражений привязки

<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.

  • XmlNamespaceManager

Примечания

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.

См. также

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