XAML adatkötési diagnosztikák

Az XAML-projekteken dolgozó fejlesztőknek gyakran kell észlelniük és megoldaniuk az XAML adatkötési hibáit az alkalmazásaikban. A Visual Studio 2019 16.8- és a Visual Studio 2022-ben elérhető eszközök segítenek megtalálni ezeket a bosszantó adatkötési hibákat az alkalmazás hibakeresése során. Gyakori kötési hibák például a következők:

  • Nem létező tulajdonságnévhez kötés: {Binding Wrong.Name}
  • Nem megfelelő típusú értékhez kötés, például logikai értékhez kötés, ha enumerálásra van szükség: Visibility="{Binding IsVisible}"

Mivel ezek a kötések futásidőben, tükröződés használatával vannak kiszámítva, az XAML-szerkesztő nem mindig tudja elkapni őket, és a build továbbra is sikeres lesz. A hiba csak futásidőben történik.

Az XAML-adatkötést az alábbi cikkek ismertetik:

A kötési hibák mindig a Visual Studio hibakeresési kimeneti ablakába lettek beírva. A hibakeresési kimenetben a kötési hibák könnyen átsiklanak a figyelmünk elől, mivel más hibakeresési információk is szerepelnek benne, amelyek a kötési hibákat kihagynak a nézetből. Íme egy példa a WPF kötési hibájára a hibakeresési kimeneti ablakban:

Kötéshibát tartalmazó kimeneti ablak képernyőképe.

Előfordulhat, hogy a kötési hiba több száz sorral feljebb található az ablak jelenlegi részénél, és a szöveg nem mondja meg pontosan, melyik kötés okozta a hibát, ezért alaposan végig kell gondolnia a helyzetet és keresnie kell.

Az XAML kötési hibák eszközablakában látható, hogy mely kötések meghiúsultak, valamint az egyes hibákra vonatkozó adatokat, például a fájl helyét az XAML-ben. Emellett számos hasznos funkció van a hibák kivizsgálásához kereséssel, rendezéssel és akár az XAML-szerkesztő megnyitásával, a sikertelen kötésre beállított fókuszsal.

Képernyőkép az XAML kötési hibák eszközablakáról.

A sorokra duplán kattintva megnyílik a kötés forrás XAML-címe, ahogy az alábbi képen látható:

Példakötések képernyőképe az XAML-szerkesztőben.

XAML-kötési hibák eszközablak

A hibakeresés során elérhető az XAML kötési hibák eszközablaka. A megnyitásához lépjen a következőhöz: Hibakeresési>Windows>XAML kötési hibák.

Képernyőkép a Hibakeresés menü XAML-kötési hibák lehetőségéről.

Vagy válassza a Kötési hibák gombot az alkalmazás eszköztárán. Az ikon melletti szám azt mutatja, hogy hány kötési hiba jelenik meg az eszközablakban.

Képernyőkép az alkalmazáson belüli eszköztárról, amelyen a kötési hibák gomb látható.

Ha az eszközablakban nincsenek kötési hibák, az ikon szürkeként jelenik meg a mellette lévő szám nélkül. Ez hasznos az alkalmazás futtatásakor. Ha az ikon pirosra vált egy számmal, kattintson rá, hogy gyorsan ugorjon az eszközablakra, hogy lássa, milyen kötési hibák történtek. Nem kell szemmel tartani a Visual Studio eszközablakait. Ha egy kötés meghiúsul, az ikon állapota megjeleníti az azonnali állapotot.

Képernyőkép az alkalmazáson belüli eszköztárról, amelyen a kötési hibák gomb látható hibák nélkül.

Hasonló ikon is megjelenik az Élő vizualizációfa eszközablakban.

Képernyőkép a kötési hibák gombról az Élő vizualizációfa eszközablakban.

Az alábbiakban az XAML-kötési hibák eszközablak összes összetevőjének leírását láthatja.

Képernyőkép az XAML kötési hibák eszközablakáról.

  • A felső eszköztár a következő gombokat tartalmazza:
    • Törölje a hibák listáját: Ez akkor hasznos, ha új lapot szeretne megjeleníteni az alkalmazásban, és meg akarja nézni, hogy megjelennek-e kötési hibák. Új hibakeresési munkamenet indításakor a rendszer automatikusan törli a listát.
    • Kijelölt sorok törlése: Ha hiba történt, vagy nem releváns, törölheti azt a listából. A törölt sorok ismét megjelennek, ha a kötés ismét meghiúsul.
    • Törölje az összes szűrőt: Ha a listában vannak olyan szűrők, mint például a szöveg keresése, akkor ez a gomb törli őket, és megjeleníti a teljes listát.
    • Duplikált elemek kombinálása: Gyakran ugyanaz a kötés többször meghiúsul egy sorban, amikor egy elemsablonon belül van. Ha a Duplikált elemek egyesítése gomb van kiválasztva (körülvázlattal), akkor az összes ismétlődő hiba egyetlen sorként jelenik meg. A Darabszám oszlopban látható, hogy hányszor történt a hiba.
  • A Keresési kötés hibái mező a felső sarokban lehetővé teszi, hogy a hibákat csak azokra szűrje, amelyek adott szöveget tartalmaznak.
  • A táblázat oszlopai sorrendben a következőt jelenítik meg:
    • Egy ikon, amely jelzi, hogy a sor hiba vagy figyelmeztetés miatt van-e.
    • Az a szögletes zárójeleket <> ábrázoló ikon támogatott, ha az XAML-ben az elromlott {Binding}-re történő navigálás támogatott. Lásd a támogatott platformok című szakaszt.
    • adatkörnyezet: Ez a kötés forrásobjektumának típusneve
    • kötési útvonal: Ez a kötés tulajdonságútvonala
    • Cél: Ez az opció az a típus és tulajdonságnév, ahol a kötés értéke beállításra kerül.
    • céltípus: Ez a kötés céltulajdonságának várt típusa.
    • Leírás: Ez az oszlop további információt tartalmaz arról, hogy pontosan mi nem sikerült a kötéshez.
    • Fájl, Sorés Project: Ha ismert, ez a hely az XAML-ben, ahol a kötés definiálva van.
  • Ha a jobb gombbal egy sorra vagy több kijelölt sorra kattint, megjelenik egy helyi menü, amelyen az oszlopok megjelenítésére/elrejtására vagy csoportosítására vonatkozó szokásos beállítások láthatók. További lehetőségek a következők:
    • Másolja az összes szöveget egy sorból vagy egyetlen oszlopból a vágólapra.
    • Az "Eredeti hiba másolása" a hibakeresési kimeneti ablakban megjelenő szöveget másolja.
    • A Forrás megtekintése funkció az XAML kötési forrására mutat a kijelölt sor esetén.
    • Az Oszlopok alaphelyzetbe állítása minden változtatást visszavon az oszlopok láthatóságában és rendezésében, így gyorsan visszatérhet az eredeti megjelenítéshez.

A lista rendezéséhez kattintson bármelyik oszlopfejlécre. Ha egy további oszlop alapján szeretne rendezni, tartsa lenyomva a Shift billentyűt, és kattintson egy másik oszlopfejlécre. Ha ki szeretné választani, hogy mely oszlopok látszódjanak, és melyek rejtettek, válassza a helyi menüből a Oszlopok megjelenítése lehetőséget. Ha módosítani szeretné az oszlopok megjelenítésének sorrendjét, húzza az oszlopfejlécet balra vagy jobbra.

Miután duplán kattintott egy sorra, vagy lenyomta az Enter billentyűkombinációt a forrásra való navigáláshoz, a kötéshibák listájának lefelé vagy felfelé való áthelyezéséhez nyomja le F8 vagy Shift+F8. Ez olyan, mint a Visual Studio más paneljei, amelyek egy listát mutatnak.

Támogatott platformok

A legtöbb XAML-platform támogatott, ha a kötési hibák hibakeresési kimenetre vannak írva. Egyes platformok további forrásinformációkat biztosítanak a hibakeresőnek, amelyek lehetővé teszik a forráshoz való navigálást.

Platform támogatott Navigálás a támogatott forráshoz
WPF .NET-keretrendszer Igen Nem
WPF .NET 5.0 RC2+ Igen Igen
UWP Igen Nem
WinUI3 asztali alkalmazás Igen Nem
MAUI (többplatformos alkalmazás felhasználói felülete) Igen Nem
Xamarin 4.5.0.266-pre3+ Igen Igen
Xamarin előtt 4.5.0.266-pre3 Nem Nem

A forrásra való navigálás támogatásához engedélyezni kell az XAML gyorstöltés funkciót a Visual Studióban. Az Eszközök>beállításai panelen bontsa ki a Minden beállítás>hibakeresése>XAML gyakori elérésű újratöltés szakaszt, és jelölje be az XAML gyorstöltés engedélyezése jelölőnégyzetet.

Képernyőkép a XAML Hot Reload beállításairól az Eszközök beállításai ablakban.

A forrásra való navigálás támogatásához engedélyezni kell az XAML gyorstöltés funkciót a Visual Studióban. Az Eszközök>beállításai párbeszédpanelen bontsa ki azXAML gyorstöltés> szakaszát, jelölje be az XAML gyorstöltés engedélyezése jelölőnégyzetet, majd kattintson az OK gombra.

Képernyőkép az XAML Hot Reload lehetőségekről az Eszközök beállítások párbeszédpanelben.

A forrásra való navigálás csak az XAML-forrásfájlokban definiált kötések esetében működik, nem, ha kóddal lettek létrehozva. Egyértelműen láthatja, hogy mely sorok támogatják a forrásra való navigálást. Ha a második oszlopban nincs szögletes zárójel ikon, akkor a forrásra való navigálás nem támogatott, például az alábbi képernyőkép kiemelt sorával:

A forráshely nélküli XAML-kötési hibát ábrázoló képernyőkép.

A .NET-keretrendszerBEN a WPF esetében az adatkötési hibákat az XAML-kötési hibák panel hibakeresési kimenetében kell megjeleníteni az észleléshez és megjelenítéshez. Konfigurálja az Adatkötési beállítást az Eszközök>beállításaipanelen, az Összes beállítás>hibakeresése>kimeneti ablak>WPF nyomkövetési beállítások szakaszában.

Képernyőkép az Adatkötés beállításáról.

A .NET-keretrendszerBEN a WPF esetében az adatkötési hibákat az XAML-kötési hibák panel hibakeresési kimenetében kell megjeleníteni az észleléshez és megjelenítéshez. Konfigurálja az Adatkötés beállítást az Eszközök>beállításai párbeszédpanelen, a Hibakeresési>kimeneti ablak szakasz WPF-nyomkövetési beállítások csoportjában.

Képernyőkép a WPF Nyomkövetési beállítások csoport Adatkötés beállításáról.

Ha a beállítás értéke ki van kapcsolva vagy kritikus, akkor az adatkötési hibák nem a hibakeresési kimenethez lesznek megírva, és nem észlelhetők. A .NET 5- és .NET 6-os és újabb verzióiban futó WPF esetén az adatkötés kimeneti beállítása nem befolyásolja a hibalistát.