Bagikan melalui


Diagnostik pengikatan data XAML

Pengembang yang bekerja pada proyek XAML sering kali harus mendeteksi dan mengatasi kegagalan pengikatan data XAML dalam aplikasi mereka. Sekarang ada alat dalam Visual Studio 2019 versi 16.8 atau yang lebih baru dan Visual Studio 2022 untuk membantu menemukan kegagalan pengikatan data yang mengganggu ini saat Anda men-debug aplikasi Anda. Contoh kegagalan pengikatan umum adalah sebagai berikut:

  • Pengikatan ke nama properti yang tidak ada: {Binding Wrong.Name}
  • Mengikat ke nilai jenis yang salah, seperti mengikat ke Boolean ketika enumerasi diperlukan: Visibility="{Binding IsVisible}"

Karena pengikatan ini dihitung pada runtime dengan menggunakan refleksi, editor XAML tidak selalu dapat mendeteksinya, dan build Anda tetap akan berhasil. Kegagalan hanya terjadi pada runtime.

Pengikatan data XAML dijelaskan dalam artikel ini:

Kegagalan pengikatan selalu dicatat ke jendela keluaran debug di Visual Studio. Tetapi mudah untuk melewatkan kegagalan pengikatan dalam output debug karena berisi informasi penelusuran kesalahan lain yang menggulir kegagalan pengikatan di luar tampilan. Berikut adalah contoh kegagalan pengikatan WPF dalam jendela output debug:

Cuplikan layar jendela output yang berisi kegagalan pengikatan.

Kegagalan pengikatan mungkin ratusan baris dari bagian atas jendela, dan teks tidak memberi tahu Anda dengan tepat pengikatan mana yang mengalami kegagalan, jadi Anda perlu memikirkannya dan mencarinya.

Sekarang, dengan jendela alat Kegagalan Pengikatan XAML, Anda dapat dengan jelas melihat pengikatan mana yang gagal, bersama dengan data yang relevan untuk setiap kegagalan, seperti lokasi file dalam XAML. Plus, ada banyak fitur berguna untuk menyelidiki kegagalan dengan mencari, mengurutkan, dan bahkan membuka editor XAML dengan fokus yang ditetapkan pada pengikatan yang gagal.

Cuplikan layar jendela alat Kegagalan Pengikatan XAML.

Mengklik dua kali baris tersebut akan membuka XAML sumber untuk pengikatan, seperti yang ditunjukkan pada gambar berikut:

Cuplikan layar contoh pengikatan di editor XAML.

Jendela alat Kegagalan Pengikatan XAML

Jendela alat Kegagalan Pengikatan XAML tersedia selama debug. Untuk membukanya, buka Debug>Windows>Kegagalan Pengikatan XAML.

Cuplikan layar opsi Kegagalan Pengikatan XAML di menu Debug.

Atau, pilih tombol kegagalan pengikatan di toolbar aplikasi. Angka di samping ikon menunjukkan berapa banyak kegagalan pengikatan yang ditampilkan di jendela alat.

Cuplikan layar toolbar dalam aplikasi memperlihatkan tombol kegagalan pengikatan.

Ketika tidak ada kegagalan pengikatan di jendela alat, ikon menunjukkan sebagai abu-abu tanpa angka di sampingnya. Ini berguna saat menjalankan aplikasi Anda. Jika Anda melihat ikon menjadi merah dengan angka, klik untuk melompat dengan cepat ke jendela alat untuk melihat kegagalan pengikatan apa yang terjadi. Tidak perlu mengawasi jendela alat Visual Studio. Saat pengikatan gagal, status ikon menunjukkan status langsung kepada Anda.

Cuplikan layar toolbar dalam aplikasi memperlihatkan tombol kegagalan pengikatan dengan tidak ada kegagalan.

Ikon serupa juga muncul di jendela alat Live Visual Tree.

Cuplikan layar tombol kegagalan pengikatan dalam jendela alat Live Visual Tree.

Berikut ini adalah deskripsi semua komponen jendela alat Kegagalan Pengikatan XAML.

Cuplikan layar jendela alat Kegagalan Pengikatan XAML.

  • Toolbar di bagian atas berisi tombol sebagai berikut:
    • Hapus daftar kegagalan: Ini berguna jika Anda akan menampilkan halaman baru di aplikasi Anda dan ingin melihat apakah ada kegagalan pengikatan yang muncul. Saat Anda memulai sesi debugging baru, daftar akan dihapus secara otomatis.
    • Hapus baris yang dipilih: Jika kegagalan telah diperbaiki atau tidak relevan, Anda dapat menghapusnya dari daftar. Baris yang telah dihapus akan muncul kembali jika proses pengikatan mengalami kegagalan lagi.
    • Hapus semua filter: Jika ada filter dalam daftar, seperti mencari teks, tombol ini akan menghapusnya dan menampilkan daftar lengkapnya.
    • Gabungkan Duplikat: Sering kali pengikatan yang sama gagal berkali-kali berturut-turut saat berada dalam templat item. Saat tombol Gabungkan Duplikat dipilih (ditandai dengan garis di sekitarnya) maka semua kesalahan duplikat ditampilkan sebagai satu baris. Kolom Hitung memperlihatkan berapa kali kegagalan terjadi.
  • Kotak Kegagalan Binding Pencarian di sudut atas memungkinkan Anda memfilter kegagalan hanya untuk yang berisi teks tertentu.
  • Kolom tabel, secara berurutan, memperlihatkan:
    • Ikon yang memperlihatkan apakah baris adalah untuk kesalahan atau peringatan.
    • Ikon yang memperlihatkan tanda kurung sudut <> jika menavigasi ke {Binding} yang gagal di XAML didukung. Lihat bagian Platform yang Didukung.
    • Konteks Data: Ini adalah nama jenis untuk objek sumber pengikatan
    • Jalur Pengikatan : Ini adalah jalur properti untuk pengikatan
    • Target: Opsi ini adalah jenis dan nama properti tempat nilai pengikatan diatur.
    • Jenis Target: Ini adalah jenis properti target pengikatan yang diharapkan.
    • Deskripsi: Kolom ini berisi informasi selengkapnya tentang apa yang sebenarnya gagal dalam pengikatan.
    • File, Line, dan Project: Jika diketahui, ini adalah lokasi di XAML tempat pengikatan ditentukan.
  • Mengklik kanan baris atau beberapa baris yang dipilih memperlihatkan menu konteks, dengan opsi standar untuk memperlihatkan/menyembunyikan kolom atau mengelompokkannya. Opsi lainnya adalah sebagai berikut:
    • Salin semua teks dari baris atau hanya satu kolom ke clipboard.
    • Salin Kesalahan Asli menyalin teks yang muncul di jendela keluaran debug.
    • Lihat Sumber mengarah ke sumber pengikatan di XAML untuk baris terpilih.
    • Reset Kolom mengurungkan semua perubahan pada visibilitas dan pengurutan kolom, memulihkan tampilan asli dengan cepat.

Untuk mengurutkan daftar, klik header kolom apa pun. Untuk mengurutkan lagi menurut kolom tambahan, tahan tombol Shift dan klik header kolom lain. Untuk memilih kolom mana yang ditampilkan dan yang tersembunyi, pilih Perlihatkan Kolom dari menu pintasan. Untuk mengubah urutan kolom ditampilkan, seret header kolom apa pun ke kiri atau kanan.

Setelah Anda mengklik dua kali baris atau menekan Masukkan untuk navigasi ke sumber, Anda dapat menekan F8 atau Shift+F8 untuk berpindah ke bawah atau ke atas melalui daftar kegagalan pengikatan. Ini seperti panel lain di Visual Studio yang menampilkan daftar.

Platform yang didukung

Sebagian besar platform XAML hanya didukung jika kegagalan pengikatan ditulis ke output debug. Beberapa platform menyediakan informasi sumber tambahan ke debugger yang memungkinkan navigasi ke sumber.

Platform Dukungan Buka sumber yang didukung
WPF .NET Framework Ya Tidak
WPF .NET 5.0 RC2+ Ya Ya
UWP Ya Tidak
Desktop WinUI3 Ya Tidak
MAUI (UI Aplikasi Multi-platform) Ya Tidak
Xamarin 4.5.0.266-pre3+ Ya Ya
Xamarin sebelum versi 4.5.0.266-pre3 Tidak Tidak

Untuk mendukung navigasi ke sumber, fitur XAML Hot Reload harus diaktifkan di Visual Studio. Di panelOpsi>, perluas bagian Semua Pengaturan>Debugging>XAML Hot Reload, dan pilih kotak centang Aktifkan XAML Hot Reload.

Cuplikan layar opsi XAML Hot Reload di panel Opsi Alat.

Untuk mendukung navigasi ke sumber, fitur XAML Hot Reload harus diaktifkan di Visual Studio. Dalam dialogOpsi>, perluas bagian Debugging>XAML Hot Reload, pilih kotak centang Aktifkan XAML Hot Reload, lalu pilih OK.

Cuplikan layar opsi XAML Hot Reload dalam dialog Opsi Alat.

Menavigasi ke sumber hanya berfungsi untuk pengikatan yang ditentukan dalam file sumber XAML, bukan jika dibuat melalui kode. Anda dapat dengan jelas melihat baris mana yang mendukung navigasi ke sumbernya. Jika tidak ada ikon tanda kurung sudut di kolom kedua, navigasi ke sumber tidak didukung, seperti dengan baris yang disorot dalam cuplikan layar berikut:

Cuplikan layar memperlihatkan kegagalan pengikatan XAML tanpa lokasi sumber.

Untuk WPF di .NET Framework, kegagalan pengikatan data harus ditampilkan dalam output debug untuk panel Kegagalan Pengikatan XAML untuk mendeteksi dan menunjukkannya. Konfigurasikan pengaturan Pengikatan Data di bagian Alat>Opsi, di bawah bagian Semua Pengaturan>Penelusuran Kesalahan>Jendela Output>Pengaturan Pelacakan WPF.

Cuplikan layar yang memperlihatkan cara mengatur opsi Pengikatan Data.

Untuk WPF di .NET Framework, kegagalan pengikatan data harus ditampilkan dalam output debug untuk panel Kegagalan Pengikatan XAML untuk mendeteksi dan menunjukkannya. Konfigurasikan pengaturan Pengikatan Data dalam dialogOpsi>, di bawah bagianJendela Output>, grup Pengaturan Pelacakan WPF.

Cuplikan layar opsi Pengikatan Data di grup Pengaturan Pelacakan WPF.

Jika nilai pengaturan Nonaktif atau Kritis, kesalahan pengikatan data tidak ditulis ke output debug dan tidak dapat dideteksi. Dengan WPF di .NET 5, .NET 6, dan versi yang lebih baru, pengaturan output pembingkaian data tidak memengaruhi daftar kegagalan.