Поиск…


Синтаксис

  • <object property = "{x: Bind}" ... />

  • <object property = "{x: Bind propertyPath}" ... />

  • <object property = "{x: Bind Path = propertyPath}" ... />

  • <object property = "{x: Bind [bindingProperties]}" ... />

  • <object property = "{x: Bind propertyPath, [bindingProperties]}" ... />

  • <object property = "{x: Bind Path = propertyPath, [bindingProperties]}" ... />

замечания

Расширение разметки {x:Bind} - новое для Windows 10 - является альтернативой {Binding} .

{x:Bind} не хватает некоторых функций {Binding} , но работает меньше времени и меньше памяти, чем {Binding} и поддерживает лучшую отладку.

При времени загрузки XAML {x:Bind} преобразуется в то, что вы можете рассматривать как объект привязки, и этот объект получает значение из свойства в источнике данных. Объект привязки может быть дополнительно настроен для наблюдения за изменением значения свойства источника данных и обновления на основе этих изменений. Он также может быть настроен на то, чтобы вносить изменения в свое значение обратно в исходное свойство. Объекты привязки, созданные {x:Bind} и {Binding} , в основном функционально эквивалентны. Но {x:Bind} выполняет специальный код, который он генерирует во время компиляции, а {Binding} использует проверку объектов общего назначения. Следовательно, привязки {x:Bind} (часто называемые скомпилированными связями) обладают большой производительностью, обеспечивают проверку ваших выражений привязки во время компиляции и поддерживают отладку, позволяя вам устанавливать контрольные точки в файлах кода, которые генерируются как частичные класс для вашей страницы. Эти файлы можно найти в вашей папке obj с именами вроде (для C #) .g.cs.

Для получения дополнительной информации см. Документацию MSDN по адресу x: Bind

Оценка {x: Bind} из функций

Эта способность была добавлена ​​к расширению разметки Bind после v1607 (Redstone 1).
Вы можете указать путь к функции, а также пути arg и константные args. Предположим, что у нас есть функция, определенная в нашем обратном коде:

public string Translate(string text, string from, string to)

Теперь мы можем использовать bind для оценки функции в нужном элементе:

<TextBlock Name="SomeText" Text="How are you?" />
<TextBlock Name="{x:Bind Translate(SomeText.Text, 'en', 'es')}" />

Функции и пути arg также могут содержать точки и заливки.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow