Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les développeurs qui travaillent sur des projets XAML doivent souvent détecter et résoudre les échecs de liaison de données XAML dans leurs applications. Il existe maintenant des outils dans Visual Studio 2019 version 16.8 ou ultérieure et Visual Studio 2022 pour vous aider à trouver ces échecs de liaison de données ennuyeux pendant le débogage de votre application. Voici quelques exemples d’échecs de liaison courants :
- Liaison à un nom de propriété qui n’existe pas :
{Binding Wrong.Name} - Liaison à une valeur du type incorrect, comme la liaison à un booléen lorsqu’une énumération est requise :
Visibility="{Binding IsVisible}"
Étant donné que ces liaisons sont calculées au moment de l’exécution à l’aide de la réflexion, l’éditeur XAML ne peut pas toujours les intercepter, et votre build réussit toujours. L’échec se produit uniquement au moment de l’exécution.
La liaison de données XAML est expliquée dans les articles suivants :
- Pour WPF : Vue d’ensemble de la liaison de données - WPF .NET
- Pour UWP : Vue d’ensemble de la liaison de données - Applications UWP
- Pour Xamarin.Forms : liaison de données Xamarin.Forms - Xamarin
- Pour .NET MAUI : Liaison de données .NET MAUI
Les échecs de liaison ont toujours été écrits dans la fenêtre de sortie de débogage dans Visual Studio. Mais il est facile de manquer les erreurs de liaison dans la sortie de débogage, car celle-ci contient d'autres informations qui défilent les erreurs de liaison hors de vue. Voici un exemple d’échec de liaison WPF dans la fenêtre de sortie de débogage :
L'échec de liaison peut se trouver à des centaines de lignes du haut de la fenêtre, et le texte ne vous indique pas exactement quelle liaison a échoué. Vous devez donc y réfléchir et effectuer une recherche.
Maintenant, avec la fenêtre de l’outil Échecs de liaison XAML, vous pouvez clairement voir quelles liaisons ont échoué, ainsi que les données pertinentes pour chaque échec, telles que l’emplacement du fichier dans XAML. De plus, il existe de nombreuses fonctionnalités utiles pour examiner les échecs en recherchant, en triant et même en ouvrant l’éditeur XAML avec le focus défini sur la liaison ayant échoué.
Double-cliquez sur ces lignes pour ouvrir le code XAML source de la liaison, comme illustré dans l’image suivante :
Fenêtre de l’outil Erreurs de liaison XAML
La fenêtre de l’outil Échecs de liaison XAML est disponible pendant le débogage. Pour l’ouvrir, accédez à Débogage>Windows>Échecs de liaison XAML.
Vous pouvez également sélectionner le bouton Échecs de liaison dans la barre d’outils de l’application. Le nombre en regard de l’icône indique le nombre d’échecs de liaison affichés dans la fenêtre outil.
En l’absence d’échecs de liaison dans la fenêtre d'outils, l’icône s’affiche en gris sans numéro à côté. Cela est utile lors de l’exécution de votre application. Si vous voyez l’icône devenir rouge avec un nombre, cliquez dessus pour accéder rapidement à la fenêtre de l'outil afin de voir les échecs de liaison qui se sont produits. Il n’est pas nécessaire de garder un œil sur les fenêtres de l’outil Visual Studio. Quand une liaison échoue, le statut de l'icône vous montre l'état immédiat.
Une icône similaire apparaît également dans la fenêtre de l’outil Arborescence des visuels en direct.
Voici une description de tous les composants de la fenêtre d'outil des XAML Binding Failures.
- La barre d’outils située en haut contient des boutons comme suit :
- Effacez la liste des échecs : cela est utile si vous êtes sur le point d’afficher une nouvelle page dans votre application et que vous souhaitez voir si des échecs de liaison s’affichent. Lorsque vous démarrez une nouvelle session de débogage, la liste est automatiquement effacée.
- Supprimer les lignes sélectionnées : si un échec a été résolu ou n’est pas pertinent, vous pouvez le supprimer de la liste. Les lignes supprimées s’affichent à nouveau si la liaison échoue à nouveau.
- Effacer tous les filtres : s’il existe des filtres dans la liste, tels que la recherche de texte, ce bouton les efface et affiche la liste complète.
- Combiner des doublons : souvent, la même liaison échoue plusieurs fois d'affilée lorsqu’elle se trouve dans un modèle d’élément. Lorsque le bouton Combiner des doublons est sélectionné (avec un contour autour de celui-ci), tous les échecs dupliqués sont affichés sous la forme d’une seule ligne. La colonne Count indique le nombre de fois où l’échec s’est produit.
- La zone Échecs de liaison de recherche dans le coin supérieur vous permet de filtrer les échecs uniquement sur ceux qui contiennent du texte spécifique.
- Les colonnes du tableau, dans l’ordre, affichent :
- Icône qui indique si la ligne est destinée à une erreur ou un avertissement.
- Une icône qui affiche des chevrons
<>si la navigation vers l’élément échoué{Binding}en XAML est prise en charge. Consultez la section Plateformes prises en charge . -
Contexte de données : il s’agit du nom de type de l’objet source de la liaison
- Voir Binding.Source
-
Chemin de liaison : il s’agit du chemin de propriété de la liaison
- Voir Binding.Path
- Cible : cette option détermine le type et le nom de propriété où la valeur de la liaison est définie.
- Type de cible : il s’agit du type attendu de la propriété cible de la liaison.
- Description : cette colonne contient plus d’informations sur exactement ce qui a échoué pour la liaison.
- Fichier, ligne et projet : s’il est connu, il s’agit de l’emplacement en XAML où la liaison est définie.
- Le fait de cliquer avec le bouton droit sur une ligne ou plusieurs lignes sélectionnées affiche un menu contextuel, avec des options standard pour afficher/masquer des colonnes ou les regrouper. Les autres options sont les suivantes :
- Copiez tout le texte d’une ligne ou d’une seule colonne dans le Presse-papiers.
- Fonction Copier l'erreur originale copie le texte qui apparaît dans la fenêtre de sortie du débogage.
- La source d’affichage est envoyée à la source de liaison en XAML pour une ligne sélectionnée.
- Réinitialiser les colonnes annule toutes les modifications apportées à la visibilité et au tri des colonnes, ce qui vous permet de revenir rapidement à ce qui a été affiché à l’origine.
Pour trier la liste, cliquez sur n’importe quel en-tête de colonne. Pour trier à nouveau par une colonne supplémentaire, maintenez la touche Maj enfoncée et cliquez sur un autre en-tête de colonne. Pour sélectionner les colonnes affichées et masquées, choisissez Afficher les colonnes dans le menu contextuel. Pour modifier l’ordre dans lequel les colonnes sont affichées, faites glisser n’importe quel en-tête de colonne vers la gauche ou la droite.
Après avoir double-cliqué sur une ligne ou appuyez sur Entrée pour accéder à la source, vous pouvez appuyer sur F8 ou Maj+F8 pour descendre ou monter dans la liste des échecs de liaison. C’est comme d’autres volets dans Visual Studio qui affichent une liste.
Plateformes prises en charge
La plupart des plateformes XAML sont prises en charge si les échecs de liaison sont consignés dans la sortie de débogage. Certaines plateformes fournissent des informations supplémentaires sur la source au débogueur qui permet de naviguer vers la source.
| Plateforme | Supported | Allez à la source supportée |
|---|---|---|
| WPF .NET Framework | Oui | Non |
| WPF .NET 5.0 RC2+ | Oui | Oui |
| UWP | Oui | Non |
| WinUI3 pour bureau | Oui | Non |
| MAUI (interface utilisateur d’application multiplateforme) | Oui | Non |
| Xamarin 4.5.0.266-pre3+ | Oui | Oui |
| Xamarin avant 4.5.0.266-pre3 | Non | Non |
Pour prendre en charge la navigation vers la source, la fonctionnalité de rechargement à chaud XAML doit être activée dans Visual Studio. Dans le volet Outils>Options, développez la section Tous les paramètres>Débogage>Rechargement à chaud XAML, puis cochez la case Activer le rechargement à chaud XAML.
Pour prendre en charge la navigation vers la source, la fonctionnalité de rechargement à chaud XAML doit être activée dans Visual Studio. Dans la boîte de dialogue Outils>Options, développez la section Débogage>Rechargement à chaud XAML, cochez la case Activer le rechargement à chaud XAML, puis sélectionnez OK.
La navigation vers la source fonctionne uniquement pour les liaisons définies dans les fichiers sources XAML, et non pas si elles sont créées par le biais du code. Vous pouvez clairement voir quelles lignes prennent en charge la navigation vers la source. S’il n’existe aucune icône de crochet angle dans la deuxième colonne, la navigation vers la source n’est pas prise en charge, par exemple avec la ligne mise en surbrillance dans la capture d’écran suivante :
Pour WPF dans .NET Framework, les échecs de liaison de données doivent être affichés dans la sortie de débogage du volet Échecs de liaison XAML pour les détecter et les afficher. Configurez le paramètre
Pour WPF dans .NET Framework, les échecs de liaison de données doivent être affichés dans la sortie de débogage du volet Échecs de liaison XAML pour les détecter et les afficher. Configurez le paramètre Liaison de données dans la boîte de dialogue Outils>Options, sous la section Débogage>Fenêtre de sortie, groupe Paramètres de trace WPF.
Si la valeur de paramètre est Désactivée ou Critique, les erreurs de liaison de données ne sont pas écrites dans la sortie de débogage et ne peuvent pas être détectées. Avec WPF dans .NET 5, .NET 6 et versions ultérieures, le paramètre de sortie de liaison de données n’affecte pas la liste des échecs.