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ž vazba selže, ikona vám hned řekne.

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, tlačítko je vymaže a zobrazí úplný seznam.
    • Kombinování duplicit: Často stejný vazební mechanismus selže mnohokrát za sebou, když se nachází 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 zobrazí, 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: Toto je název typu a vlastnosti, kam 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.
    • , 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 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.
    • Příkaz "Kopírovat původní chybu" zkopíruje text, který se zobrazil v okně výstupu ladění.
    • Zobrazit zdroj zaměří se na zdroj vazby v XAML pro 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

V sadě Visual Studio musí být povolena možnost XAML Hot Reload, aby bylo možné přejít ke zdroji. Tato možnost je v dialogovém okně Nástroje>Možnosti>Ladění:

snímek obrazovky dialogového okna možností opětovného načítání XAML

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. Možnost je v Nástroje>Možnosti>Ladění>Výstupní okno>Nastavení trasování WPF dialogu. Pokud je nastavení buď vypnuto, nebo kritické, chyby datových vazeb se do výstupu ladění nezapisují a nedají se rozpoznat. U WPF v .NET 5, .NET 6 a pozdějších verzích nastavení výstupu datové vazby neovlivňuje seznam selhání.

Snímek obrazovky s možnostmi výstupu WPF