Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Deweloperzy, którzy pracują nad projektami XAML, często muszą wykrywać i rozwiązywać błędy powiązań danych XAML w swoich aplikacjach. Teraz istnieją narzędzia w programie Visual Studio 2019 w wersji 16.8 lub nowszej i Visual Studio 2022, aby ułatwić znalezienie tych irytujących błędów powiązań danych podczas debugowania aplikacji. Przykłady typowych błędów powiązań są następujące:
- Powiązanie z nazwą właściwości, która nie istnieje:
{Binding Wrong.Name} - Powiązanie z wartością nieprawidłowego typu, na przykład powiązanie z wartością logiczną, gdy jest wymagane wyliczenie:
Visibility="{Binding IsVisible}"
Ponieważ te powiązania są obliczane w czasie wykonywania przy użyciu refleksji, edytor XAML nie zawsze jest w stanie ich przechwycić, więc kompilacja mimo to zakończy się powodzeniem. Błąd występuje tylko w czasie wykonywania.
Powiązanie danych XAML zostało wyjaśnione w następujących artykułach:
- Dla WPF: omówienie powiązania danych — WPF .NET
- W przypadku platformy UWP: omówienie powiązania danych — aplikacje platformy UWP
- Dla Xamarin.Forms: wiązanie danych Xamarin.Forms — Xamarin
- W przypadku .NET MAUI: Wiązanie danych w .NET MAUI
Błędy powiązań zawsze były zapisywane w oknie danych wyjściowych debugowania w programie Visual Studio. Jednak łatwo jest przegapić błędy powiązań w danych wyjściowych debugowania, ponieważ znajdują się w nich inne informacje debugowania, które przesuwają błędy powiązań poza widok. Oto przykład błędu powiązania WPF w oknie wyjściowym debugowania:
Błąd powiązania może zawierać setki wierszy w górnej części okna, a tekst nie informuje o tym, które powiązanie miało błąd, więc należy zastanowić się nad nim i wyszukać.
Teraz przy użyciu okna narzędzia Błędy powiązań XAML można wyraźnie zobaczyć, które powiązania zakończyły się niepowodzeniem, wraz z odpowiednimi danymi dla każdego błędu, na przykład lokalizacji pliku w języku XAML. Ponadto istnieje wiele przydatnych funkcji do badania błędów przez wyszukiwanie, sortowanie, a nawet otwieranie edytora XAML z fokusem ustawionym na powiązanie, które zakończyło się niepowodzeniem.
Dwukrotne kliknięcie tych wierszy powoduje otwarcie źródłowego kodu XAML dla powiązania, jak pokazano na poniższej ilustracji:
Okno narzędzia do błędów powiązań XAML
Okno narzędzia Błędy wiązań XAML jest dostępne podczas debugowania. Aby go otworzyć, przejdź do Debug>Windows XAML Binding Failures>.
Możesz też wybrać przycisk Błędy powiązania na pasku narzędzi aplikacji. Numer obok ikony pokazuje, ile błędów powiązań jest wyświetlanych w oknie narzędzia.
Jeśli w oknie narzędzia nie występują żadne błędy powiązań, ikona jest wyświetlana jako szara bez liczby obok niej. Jest to przydatne podczas uruchamiania aplikacji. Jeśli zobaczysz, że ikona stanie się czerwona z liczbą, kliknij ją, aby szybko przejść do okna narzędzi, aby zobaczyć, jakie błędy powiązań wystąpiły. Nie ma potrzeby śledzenia okien narzędzi programu Visual Studio. Gdy powiązanie nie powiedzie się, ikona pokazuje aktualny stan.
Podobna ikona jest również wyświetlana w oknie narzędzia Live Visual Tree.
Poniżej przedstawiono opis wszystkich komponentów okna narzędzia 'Błędy powiązań XAML'.
- Pasek narzędzi w górnej części zawiera przyciski w następujący sposób:
- Wyczyść listę błędów: jest to przydatne, jeśli zamierzasz wyświetlić nową stronę w aplikacji i sprawdzić, czy pojawią się jakiekolwiek błędy powiązań. Po rozpoczęciu nowej sesji debugowania lista zostanie automatycznie wyczyszczona.
- Usuń wybrane wiersze: jeśli awaria została naprawiona lub nie jest odpowiednia, możesz usunąć ją z listy. Usunięte wiersze są ponownie wyświetlane, jeśli powiązanie nie powiedzie się ponownie.
- Wyczyść wszystkie filtry: jeśli na liście znajdują się jakiekolwiek filtry, takie jak wyszukiwanie tekstu, ten przycisk czyści je i wyświetla pełną listę.
- Łączenie duplikatów: często to samo powiązanie kończy się niepowodzeniem wiele razy z rzędu, gdy znajduje się w szablonie elementu. Po wybraniu przycisku Połącz duplikaty (z konturem wokół niego) wszystkie zduplikowane błędy są wyświetlane jako pojedynczy wiersz. Kolumna Count (Liczba ) pokazuje, ile razy wystąpił błąd.
- Pole Błędy powiązań wyszukiwania w górnym rogu umożliwia filtrowanie błędów tylko tych, które zawierają określony tekst.
- Kolumny tabeli w kolejności pokazują:
- Ikona, która pokazuje, czy wiersz dotyczy błędu lub ostrzeżenia.
- Ikona przedstawiająca nawiasy kątowe
<>w przypadku przejścia do{Binding}w języku XAML nie powiodło się. Zobacz sekcję Obsługiwane platformy. -
kontekst danych: jest to nazwa typu obiektu źródłowego powiązania
- Zobacz Binding.Source
-
ścieżka powiązania: jest to ścieżka właściwości powiązania
- Zobacz Binding.Path
- Element docelowy: ta opcja to typ i nazwa właściwości, w której ustawiono wartość powiązania.
- typ docelowy: jest to oczekiwany typ właściwości docelowej powiązania.
- Opis: ta kolumna zawiera więcej informacji o tym, co dokładnie nie powiodło się dla powiązania.
- plik, wierszi Projekt: jeśli lokalizacja jest znana, jest to miejsce w języku XAML, w którym zdefiniowano powiązanie.
- Kliknięcie prawym przyciskiem myszy wiersza lub wielu zaznaczonych wierszy pokazuje menu kontekstowe ze standardowymi opcjami wyświetlania/ukrywania kolumn lub grupowania ich. Inne opcje są następujące:
- Skopiuj cały tekst z wiersza lub tylko tekst z jednej kolumny do schowka.
- Funkcja "Skopiuj oryginalny błąd" kopiuje tekst, który pojawił się w oknie danych wyjściowych debugowania.
- Źródło widoku przechodzi do źródła powiązania w języku XAML dla jednego zaznaczonego wiersza.
- Opcja 'Resetuj kolumny' przywraca pierwotne ustawienia widoczności i sortowania kolumn, pozwalając na szybki powrót do oryginalnych ustawień.
Aby posortować listę, kliknij dowolny nagłówek kolumny. Aby ponownie posortować według dodatkowej kolumny, przytrzymaj wciśnięty Shift i kliknij inny nagłówek kolumny. Aby wybrać, które kolumny są wyświetlane i które są ukryte, wybierz pozycję Pokaż kolumny z menu skrótów. Aby zmienić kolejność wyświetlania kolumn, przeciągnij dowolny nagłówek kolumny do lewej lub prawej.
Po dwukrotnym kliknięciu wiersza lub naciśnięciu Enter, aby przejść do źródła, możesz nacisnąć F8 lub Shift+F8, aby przejść w dół lub w górę przez listę błędów powiązań. Jest to podobne do innych okienek w programie Visual Studio, które pokazują listę.
Obsługiwane platformy
Większość platform XAML jest obsługiwana, jeśli niepowodzenia powiązań są rejestrowane w wynikach debugowania. Niektóre platformy udostępniają dodatkowe informacje źródłowe do debugera, który umożliwia przechodzenie do źródła.
| Platform | Obsługiwane | Przejdź do obsługiwanego źródła |
|---|---|---|
| WPF .NET Framework | Tak | Nie |
| WPF .NET 5.0 RC2+ | Tak | Tak |
| UWP | Tak | Nie |
| WinUI3 na desktopie | Tak | Nie |
| MAUI (interfejs użytkownika aplikacji wieloplatformowej) | Tak | Nie |
| Xamarin 4.5.0.266-pre3+ | Tak | Tak |
| Xamarin przed 4.5.0.266-pre3 | Nie | Nie |
Aby umożliwić nawigację do źródła, w programie Visual Studio musi być włączona funkcja Hot Reload dla XAML. W okienku Narzędzia> rozwiń sekcję Wszystkie ustawienia>> i zaznacz pole wyboru Włącz Przeładowywanie kodu XAML na gorąco.
Aby umożliwić przechodzenie do źródła, w programie Visual Studio musi być włączona funkcja XAML Hot Reload. W oknie dialogowym Narzędzia>Opcje, rozwiń sekcję Debugowanie>XAML Hot Reload, zaznacz pole wyboru Włącz XAML Hot Reload, a następnie wybierz OK.
Przechodzenie do źródła działa tylko w przypadku powiązań zdefiniowanych w plikach źródłowych XAML, a nie w przypadku ich tworzenia za pomocą kodu. Możesz wyraźnie zobaczyć, które wiersze pozwalają na przejście do źródła. Jeśli w drugiej kolumnie nie ma ikony nawiasu ostrokątnego, przejście do źródła nie jest obsługiwane, jak na wyróżnionym wierszu na zrzucie ekranu poniżej:
W przypadku platformy WPF w programie .NET Framework błędy powiązań danych muszą być wyświetlane w danych wyjściowych debugowania w okienku Błędy powiązań XAML, aby je wykryć i pokazać. Skonfiguruj ustawienie Powiązanie danych w okienku Narzędzia>Opcje, w sekcji Wszystkie ustawienia>Debugowanie>Okno wynikowe>śledzenia WPF.
W przypadku platformy WPF w programie .NET Framework błędy powiązań danych muszą być wyświetlane w danych wyjściowych debugowania w okienku Błędy powiązań XAML, aby je wykryć i pokazać. Skonfiguruj ustawienie Powiązania danych w oknie dialogowym Narzędzia>Opcje, w sekcji Debugowanie>Okno wyjściowe, grupa Ustawienia śledzenia WPF.
Jeśli wartość ustawienia jest wyłączona lub krytyczna, błędy powiązania danych nie są zapisywane w danych wyjściowych debugowania i nie można ich wykryć. W przypadku WPF na platformach .NET 5, .NET 6 i późniejszych, ustawienie wyjściowe powiązania danych nie ma wpływu na listę niepowodzeń.