Поиск…


замечания

XAML используется в приложениях Silverlight, Windows Phone, Windows RT и UWP. Обмен кодом или преобразование кода между ними иногда сложнее, чем желательно из-за тонких различий между различными диалектами XAML. Эта тема стремится дать краткий обзор этих различий с кратким объяснением.

Скомпилированные привязки данных: расширение разметки {x: Bind}

Базы данных необходимы для работы с XAML. Диалог XAML для приложений UWP предоставляет тип привязки: расширение разметки {x: Bind}.

Работа с {Binding XXX} и {x: Bind XXX} в основном эквивалентна, с той разницей, что расширение x: Bind работает во время компиляции, что обеспечивает лучшие возможности отладки (например, точки разрыва) и лучшую производительность.

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

Расширение разметки x: Bind доступно только для приложений UWP. Подробнее об этом читайте в этой статье MSDN: https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth .

Альтернативы для Silverlight, WPF, Windows RT: используйте стандартный синтаксис {Binding XXX}:

<object property="{Binding bindingPath}" />

Импорт пространств имен в XAML

В большинстве случаев вам нужно импортировать пространства имен в файл XAML. Как это делается, разные для разных вариантов XAML.

Для Windows Phone Silverlight WPF использует синтаксис пространства имен clr:

<Window ... xmlns:internal="clr-namespace:rootnamespace.namespace"
            xmlns:external="clr-namespace:rootnamespace.namespace;assembly=externalAssembly"
>

Windows RT, UWP используют синтаксис использования:

<Page ... xmlns:internal="using:rootnamespace.namespace"
            xmlns:external="using:rootnamespace.namespace;assembly=externalAssembly"
>

Мультисвязывание

Multi Binding - это эксклюзивная функция для разработки WPF. Он позволяет связывать сразу несколько значений (обычно используется с MultiValueConverter).

<TextBox>
    <TextBox.Text>
        <MultiBinding Converter="{StaticResource MyConverter}">
            <Binding Path="PropertyOne"/>
            <Binding Path="PropertyTwo"/>
        </MultiBinding>
    </TextBox.Text>
</TextBox>

Платформы, отличные от WPF, не поддерживают множественную привязку. Вы должны найти альтернативные решения (например, перемещение кода из представления и конвертеров в режим просмотра) или использовать сторонние действия, как в этой статье: http://www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)



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