Que faut-il utiliser dans UWP, Binding
ou x:Bind
et quelle est la différence entre eux?
Parce que je vois beaucoup de messages où les gens utilisent Binding
et je ne lie qu'avec x:Bind
dans UWP.
Sur la page d'accueil MSDN, il est uniquement indiqué que "les objets de liaison créés par {x:Bind}
et {Binding}
sont largement équivalents sur le plan fonctionnel. "et que x:Bind
est plus rapide .
Mais quelle est la différence entre eux?
Parce que "largement fonctionnellement équivalent" ne signifie pas équivalent.
Le lien de ma citation: MSDN
Donc ma question est:
Quelle est la différence dans l'utilisation de Binding ou x: Bind dans UWP?
Ce qui suit n'est probablement pas complet, mais certaines des principales différences sont
Ancien style {Binding }
{x:Bind }
Et à partir de la version 1439 , {x:Bind }
les soutiens:
Le nouveau {x: Bind} est un peu plus rapide à l'exécution mais tout aussi important, il donnera des erreurs de compilation pour les liaisons erronées. Avec {Binding}, vous verriez simplement un contrôle vide dans la plupart des cas.
{x:Bind}
exécute du code spécial, qu'il génère au moment de la compilation. {Binding}
utilise l'inspection générale des objets d'exécution. Par conséquent, {x:Bind}
offre d'excellentes performances et fournit une validation au moment de la compilation de vos expressions de liaison. Il prend en charge le débogage en vous permettant de définir des points d'arrêt dans les fichiers de code qui sont générés en tant que classe partielle pour votre page.
Car {x:Bind}
utilise le code généré pour obtenir ses avantages, il nécessite des informations de type au moment de la compilation. Cela signifie que vous ne pouvez pas vous lier à des propriétés dont vous ne connaissez pas le type à l'avance. Pour cette raison, vous ne pouvez pas utiliser {x:Bind}
avec la propriété DataContext qui est de type Object et est également sujette à modification au moment de l'exécution. Le {x:Bind}
l'extension de balisage - nouvelle pour Windows 10 - est une alternative à {Binding}
. {x:Bind}
manque certaines des fonctionnalités de {Binding}
, mais il s'exécute en moins de temps et moins de mémoire que {Binding}
et prend en charge un meilleur débogage.