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:
- Pro WPF: Přehled datových vazeb – WPF .NET
- Pro UPW: Přehled datových vazeb – aplikace UPW
- Pro Xamarin.Forms: Datová vazba Xamarin.Forms – Xamarin
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í:
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.
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:
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.>
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.
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.
V okně nástroje Live Visual Tree se také zobrazí podobná ikona.
Následuje popis všech komponent okna nástroje Selhání vazeb XAML.
- 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.
- Viz Binding.Source
- Cesta vazby: Toto je cesta vlastnosti pro vazbu.
- Viz Binding.Path
- 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í:
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:
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í.