Sdílet prostřednictvím


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. Nyní 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 otravné 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 se vždy zapisovaly do okna výstupu ladění ve Visual Studiu. V rámci výstupu ladění je ale snadné přehlédnout chyby vazby, protože obsahuje další informace o ladění, které posouvají chyby vazeb mimo dosah zobrazení. Tady je příklad selhání vazby WPF v okně výstupu ladění:

snímek obrazovky s výstupním oknem obsahujícím selhání vazby

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.

snímek obrazovky okna nástroje Selhání vazeb XAML

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:

Snímek obrazovky s ukázkovými vazbami v editoru XAML

Nástrojové okno pro selhání vazeb XAML

Během ladění je k dispozici okno nástroje pro selhání vazeb XAML. Pokud ho chcete otevřít, přejděte na Ladění>Windows>Selhání vazby XAML.

Snímek obrazovky možnosti Selhání vazeb XAML v nabídce Ladění

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

snímek obrazovky panelu nástrojů v aplikaci zobrazující tlačítko selhání vazby

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ž se vazba nezdaří, stav indikátoru zobrazí okamžitý stav.

Snímek obrazovky nástrojového panelu v aplikaci, který zobrazuje tlačítko pro selhání vazby s oznámením, že nejsou žádná selhání.

Podobná ikona se také zobrazí v okně nástroje Live Visual Tree.

snímek obrazovky s tlačítkem selhání vazby v okně nástroje Live Visual Tree

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

okno nástroje XAML selhání vazeb - snímek obrazovky

  • Panel nástrojů v horní části obsahuje tlačítka následujícím způsobem:
    • Vymazat 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 relaci ladění, seznam se automaticky vymaže.
    • Odstranit vybrané řádky: Pokud došlo k chybě 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: Často stejná vazba selže mnohokrát za sebou, když je v šabloně položky. Když je vybráno tlačítko Zkombinovat duplicity (s obrysem kolem něj), zobrazí se duplicitní selhání v jediném řádku. Sloupec Počet ukazuje, kolikrát došlo k chybě.
  • Pole Selhání vyhledávací vazby 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, zda je řádek pro chybu nebo varování.
    • Ikona zobrazující úhlové závorky <>, pokud se podporuje přechod na neúspěšné {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: Tato možnost je název typu a vlastnosti, kde je 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.
    • , na řádkua v projektu: Pokud je známo, jedná se o umístění v jazyce XAML, kde je definována vazba.
  • Po kliknutí pravým tlačítkem myši na řádek nebo několik 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í text chyby 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 sloupce navíc, podržte klávesu Shift a klikněte na jiné záhlaví sloupce. Pokud chcete vybrat, které sloupce se zobrazí 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.

Když dvakrát kliknete na řádek nebo stisknete klávesu Enter na navigaci ke zdroji, můžete stisknutím klávesy F8 nebo Shift+F8 procházet seznamem chyb vazeb. To je podobné ostatním podoknům ve Visual Studio, které zobrazují seznam.

Podporované platformy

Většina platforem XAML je podporována, pokud jsou chyby vazeb zapisovány do výstupu pro ladění. Některé platformy poskytují ladicímu programu další informace o zdroji, které umožňují přejít ke zdroji.

platformy podporované Přejít na podporovaný zdroj
WPF .NET Framework Ano Ne
WPF .NET 5.0 RC2+ Ano Ano
UPW Ano Ne
desktopové WinUI3 Ano Ne
MAUI (uživatelské rozhraní multiplatformních aplikací) Ano Ne
Xamarin 4.5.0.266-pre3+ Ano Ano
Xamarin před 4.5.0.266-pre3 Ne Ne

Aby bylo možné přejít na zdroj, musí být v sadě Visual Studio povolena funkce XAML Hot Reload. V podokněnástrojůMožnosti rozbalte sekci Všechna nastavení ladění XAML Hot Reload a zaškrtněte políčko Povolit XAML Hot Reload.

Snímek obrazovky s možnostmi XAML Hot Reload v okně Možnosti nástroje

Aby bylo možné přejít na zdroj, musí být v sadě Visual Studio povolena funkce XAML Hot Reload. V dialogovém okněNástroje>Možnosti rozbalte část Ladění>XAML Hot Reload, zaškrtněte políčko Povolit XAML Hot Reload a pak vyberte OK.

Snímek obrazovky s možnostmi XAML Hot Reload v dialogovém okně Nástroje - Možnosti

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:

snímek obrazovky znázorňující selhání vazby XAML bez umístění zdroje

V případě WPF v rozhraní .NET Framework musí být chyby datových vazeb zobrazeny ve výstupu ladění, aby je podokno Selhání vazeb XAML mohlo rozpoznat a zobrazit. Nakonfigurujte Nastavení datové vazby v podokně Nástroje>Možnosti v části Všechna nastavení>Ladění>Výstupního okna>Nastavení trasování WPF.

Snímek obrazovky, který ukazuje, jak nastavit možnost Datové vazby

V případě WPF v rozhraní .NET Framework musí být chyby datových vazeb zobrazeny ve výstupu ladění, aby je podokno Selhání vazeb XAML mohlo rozpoznat a zobrazit. Nakonfigurujte nastavení Datové vazby v dialogovém okně Nástroje>Možnosti, v sekci Ladění>Okno výstupu, ve skupině Nastavení trasování WPF.

Snímek obrazovky s možností Data Binding ve skupině Nastavení trasování WPF

Pokud je hodnota 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 pozdějších verzích nastavení výstupu datové vazby neovlivňuje seznam selhání.