Recherche…


Remarques

XAML est utilisé dans les applications Silverlight, Windows Phone, Windows RT et UWP. Partager du code ou convertir du code entre ceux-ci est parfois plus difficile que souhaitable en raison des différences subtiles entre les différents dialectes XAML. Ce sujet vise à donner un aperçu de ces différences avec une courte explication.

Liaisons de données compilées: l'extension de balisage {x: Bind}

Les databings sont essentiels pour travailler avec XAML. Le dialecte XAML pour les applications UWP fournit un type de liaison: l'extension de balisage {x: Bind}.

Travailler avec {Binding XXX} et {x: Bind XXX} est essentiellement équivalent, à la différence près que l'extension x: Bind fonctionne au moment de la compilation, ce qui permet de meilleures capacités de débogage (par exemple, des points d'arrêt) et de meilleures performances.

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

L'extension de balisage x: Bind est uniquement disponible pour les applications UWP. En savoir plus à ce sujet dans cet article MSDN: https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth .

Alternatives pour Silverlight, WPF, Windows RT: utilisez la syntaxe standard {Binding XXX}:

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

Importer des espaces de noms dans XAML

La plupart du temps, vous devez importer des espaces de noms dans votre fichier XAML. La façon dont cela est fait est différente pour les différentes variantes de XAML.

Pour Windows Phone, Silverlight, WPF utilisent la syntaxe clr-namespace:

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

Windows RT, UWP utilise la syntaxe d'utilisation:

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

Reliure multiple

Multi Binding est une fonctionnalité exclusive pour le développement de WPF. Il permet une liaison à plusieurs valeurs à la fois (généralement utilisée avec un MultiValueConverter).

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

Les plates-formes autres que WPF ne prennent pas en charge la liaison multiple. Vous devez trouver des solutions alternatives (comme déplacer le code de l'affichage et des convertisseurs vers le modèle de vue) ou utiliser des comportements tiers comme dans cet article: http://www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow