Saat menggunakan sintaksis {Binding} tradisional, Anda dapat menentukan nama elemen untuk menunjuk ke kontrol tertentu pada halaman, dan dapat mengakses propertinya. Misalnya jika halaman tersebut bernama page
Anda dapat melakukan:
{Binding ElementName=Page, Path=Name}
Dengan sintaks {x:Bind dikatakan
Dengan x:Bind, Anda tidak perlu menggunakan ElementName=xxx sebagai bagian dari ekspresi pengikatan. Dengan x:Bind, Anda dapat menggunakan nama elemen sebagai bagian pertama dari jalur pengikatan karena elemen yang diberi nama menjadi bidang dalam halaman atau kontrol pengguna yang mewakili sumber pengikatan akar.
Jadi untuk contoh di atas di {x:Bind} adalah
{x:Bind page.Name}
Yang berfungsi dengan baik, hingga berada di dalam templat data (misalnya ItemTemplate ListView). Dalam hal ini tidak lagi berfungsi karena mencari Page
pada tipe data yang ditentukan yang menyebabkan kesalahan berikut (dengan asumsi tipe data saya adalah customer
):
Kesalahan XamlCompiler WMC1110: Jalur pengikatan 'Halaman.Nama' tidak valid: Properti 'Halaman' tidak dapat ditemukan pada jenis 'Pelanggan'
Apa solusi untuk menggunakan sintaks {x:Bind} dengan templat data dan kontrol akses di luar templat data?
Kode contoh tersedia di sini (perhatikan penerapan khusus)