Diagnostika datových vazeb XAML

Vývojáři, kteří pracují na projektech XAML, často musí ve svých aplikacích zjišťovat a řešit chyby datových vazeb XAML. Teď existují nástroje v sadě Visual Studio 2019 verze 16.8 nebo novější a Visual Studio 2022, které vám pomůžou najít tyto nepříjemné chyby datových vazeb při ladění aplikace. Příklady běžných chyb vazeb jsou následující:

  • Vazba na název vlastnosti, která neexistuje: {Binding Wrong.Name}
  • Vazba na hodnotu nesprávného typu, například vazba na logickou hodnotu, pokud je požadován výčet: Visibility="{Binding IsVisible}"

Vzhledem k tomu, že se tyto vazby počítají za běhu pomocí reflexe, editor XAML je vždy nedokáže zachytit a sestavení bude i nadále úspěšné. K selhání dochází pouze za běhu.

Datové vazby XAML jsou vysvětlené v těchto článcích:

Chyby vazby byly vždy zapsány do okna výstupu ladění v sadě Visual Studio. V rámci výstupu ladění je ale snadné vynechat chyby vazby, protože obsahuje další informace o ladění, které posunují chyby vazeb mimo zobrazení. Tady je příklad selhání vazby WPF v okně výstupu ladění:

Screenshot of the output window containing a binding failure.

Selhání vazby může být stovky řádků mimo horní část okna a text vám přesně neřekne, která vazba měla chybu, takže se o ní musíte zamyslet a hledat.

V okně nástroje Selhání vazeb XAML teď můžete jasně zjistit, které vazby selhaly, spolu s relevantními daty pro každé selhání, jako je umístění souboru v rámci XAML. Navíc existuje mnoho užitečných funkcí pro zkoumání selhání vyhledáváním, řazením a otevřením editoru XAML s fokusem nastaveným na neúspěšnou vazbu.

Screenshot of the XAML Binding Failures tool window.

Poklikáním na tyto řádky otevřete zdrojový kód XAML pro vazbu, jak je znázorněno na následujícím obrázku:

Screenshot of example bindings in the XAML editor.

Okno nástroje Selhání vazeb XAML

Během ladění je k dispozici okno nástroje Selhání vazeb XAML. Otevřete ho tak, že přejdete na Ladění>chyb vazeb XAML systému Windows.>

Screenshot of the XAML Binding Failures option in the Debug menu.

Nebo na panelu nástrojů aplikace vyberte tlačítko Selhání vazby . Číslo vedle ikony ukazuje, kolik selhání vazeb se zobrazí v okně nástroje.

Screenshot of the in-app toolbar showing the binding failures button.

Pokud v okně nástroje nejsou žádné chyby vazby, ikona se zobrazí jako šedá bez čísla vedle něj. To je užitečné při spouštění aplikace. Pokud se ikona zobrazí červeně s číslem, kliknutím na ni rychle přejdete do okna nástroje a zjistíte, k jakým chybám vazby došlo. Není nutné sledovat okna nástrojů sady Visual Studio. Když vazba selže, ikona vám hned řekne.

Screenshot of the in-app toolbar showing the binding failures button with no failures.

V okně nástroje Live Visual Tree se také zobrazí podobná ikona.

Screenshot of the binding failures button within the Live Visual Tree tool window.

Následuje popis všech komponent okna nástroje Selhání vazeb XAML.

Screenshot of XAML Binding Failures tool window.

  • Panel nástrojů v horní části obsahuje tlačítka následujícím způsobem:
    • Vymažte seznam selhání: To je užitečné, pokud se chystáte zobrazit novou stránku v aplikaci a chcete zjistit, jestli se zobrazí nějaké chyby vazeb. Když spustíte novou ladicí relaci, seznam se automaticky vymaže.
    • Odstranění vybraných řádků: Pokud je chyba opravená nebo není relevantní, můžete je ze seznamu odstranit. Odstraněné řádky se znovu zobrazí, pokud se vazba znovu nezdaří.
    • Vymazat všechny filtry: Pokud jsou v seznamu nějaké filtry, například hledání textu, vymaže je toto tlačítko a zobrazí celý seznam.
    • Kombinování duplicit: Stejná vazba často selže mnohokrát v řádku, když je v šabloně položky. Když je vybráno tlačítko Kombinovat duplicity (s obrysem okolo), zobrazí se všechna duplicitní selhání jako jeden řádek. Ve sloupci Počet se zobrazí, kolikrát došlo k chybě.
  • Pole Selhání vazby vyhledávání v horním rohu umožňuje filtrovat chyby jenom na ty, které obsahují konkrétní text.
  • Sloupce tabulky v pořadí zobrazují:
    • Ikona, která ukazuje, jestli se jedná o řádek chyby nebo upozornění
    • Podporuje se ikona, která zobrazuje úhlové závorky <> , pokud je podporován přechod na chybu {Binding} v XAML. Viz část Podporované platformy.
    • Kontext dat: Toto je název typu zdrojového objektu vazby.
    • Cesta vazby: Toto je cesta vlastnosti pro vazbu.
    • Cíl: Toto je název typu a vlastnosti, kde bude nastavena hodnota vazby.
    • Typ cíle: Jedná se o očekávaný typ cílové vlastnosti vazby.
    • Popis: Tento sloupec obsahuje další informace o tom, co přesně selhalo pro vazbu.
    • Soubor, řádek a projekt: Pokud je známo, jedná se o umístění v xaml, kde je definována vazba.
  • Po kliknutí pravým tlačítkem myši na řádek nebo více vybraných řádků se zobrazí místní nabídka se standardními možnostmi pro zobrazení nebo skrytí sloupců nebo seskupení. Další možnosti jsou následující:
    • Zkopírujte veškerý text z řádku nebo jenom jednoho sloupce do schránky.
    • Kopírovat původní chybu zkopíruje text, který se zobrazil v okně výstupu ladění.
    • Zdroj zobrazení přejde na zdroj vazby v XAML pro jeden vybraný řádek.
    • Resetování sloupců vrátí zpět všechny změny viditelnosti a řazení sloupců, takže se rychle vrátíte k původnímu zobrazení.

Pokud chcete seznam seřadit, klikněte na libovolné záhlaví sloupce. Pokud chcete řadit znovu podle dalšího sloupce, podržte stisknutou klávesu Shift a klikněte na jiné záhlaví sloupce. Chcete-li vybrat sloupce, které jsou zobrazeny a které jsou skryté, zvolte Zobrazit sloupce z místní nabídky. Pokud chcete změnit pořadí zobrazení sloupců, přetáhněte libovolné záhlaví sloupce doleva nebo doprava.

Po poklikáním na řádek nebo stisknutím klávesy Enter přejdete na zdroj, můžete stisknutím klávesY F8 nebo Shift+F8 procházet seznamem selhání vazeb. To je podobné ostatním podokenám v sadě Visual Studio, které zobrazují seznam.

Podporované platformy

Většina platforem XAML se podporuje, pokud se chyby vazeb zapisují do výstupu ladění. Některé platformy poskytují ladicímu programu další informace o zdroji, které umožňují přejít ke zdroji.

Platforma Podporuje se Přechod na podporovaný zdroj
WPF .NET Framework Yes No
WPF .NET 5.0 RC2+ Ano Yes
UPW Yes No
Desktopová verze WinUI3 Yes No
MAUI (uživatelské rozhraní multiplatformních aplikací) Yes No
Xamarin 4.5.0.266-pre3+ Ano Yes
Xamarin před 4.5.0.266-pre3 No Ne

V sadě Visual Studio musí být povolená možnost Opětovné načítání za provozu XAML, aby bylo možné přejít ke zdroji, aby fungovala. Tato možnost je v dialogovém okně Možnosti>nástrojů>Ladění:

Screenshot of the XAML Hot Reload options dialog.

Přechod na zdroj funguje jenom pro vazby definované ve zdrojových souborech XAML, ne v případě, že se vytvářejí prostřednictvím kódu. Jasně vidíte, které řádky podporují navigaci do zdroje. Pokud ve druhém sloupci není žádná ikona úhlové závorky, není podporovaná navigace ke zdroji, například se zvýrazněným řádkem na následujícím snímku obrazovky:

Screenshot showing a XAML binding failure without a source location.

V případě WPF v rozhraní .NET Framework musí být chyby datových vazeb zobrazeny ve výstupu ladění pro podokno Selhání vazeb XAML, aby bylo možné je rozpoznat a zobrazit. Možnost je v dialogovém okně Možnosti>>ladění>výstupu okna>WPF Trasování wpf Nastavení dialogové okno. Pokud je nastavení vypnuté nebo kritické, chyby datových vazeb se do výstupu ladění nezapisují a nelze je zjistit. U WPF v .NET 5, .NET 6 a novějším nastavení výstupu datové vazby nemá vliv na seznam selhání.

Screenshot of WPF output options.