Bagikan melalui


Ekstensi Markup Pengikatan

Menuangkan nilai properti menjadi nilai terikat data, membuat objek ekspresi perantara dan menginterpretasikan konteks data yang berlaku untuk elemen dan pengikatannya pada waktu proses.

Penggunaan Ekspresi Pengikatan

<object property="{Binding}" .../>  
-or-  
<object property="{Binding  bindProp1=value1[, bindPropN=valueN]*}" ...  
/>  
-or-  
<object property="{Binding path}" .../>  
-or  
<object property="{Binding path[, bindPropN=valueN]*}" .../>  

Catatan Sintaks

Dalam sintaksis ini, [] dan * bukan harfiah. Mereka adalah bagian dari notasi untuk menunjukkan bahwa nol atau lebih pasangan nilai bindProp=dapat digunakan, dengan pemisah , di antara mereka dan pasangan nilai bindProp=sebelumnya.

Salah satu properti yang tercantum di bagian "Properti Pengikatan yang Dapat Diatur dengan Ekstensi Pengikatan" dapat diatur menggunakan atribut Binding elemen objek. Namun, itu bukan benar-benar penggunaan Bindingekstensi markup , itu hanya pemrosesan atribut XAML umum yang mengatur properti kelas CLR Binding . Dengan kata lain, <BindingbindProp1 value1=""[bindPropN="valueN"]*/> adalah sintaks yang setara untuk atribut Binding penggunaan elemen objek alih-alih Binding penggunaan ekspresi. Untuk mempelajari tentang penggunaan atribut XAML dari properti Bindingtertentu , lihat bagian "Penggunaan Atribut XAML" dari properti Binding yang relevan di Pustaka Kelas .NET Framework.

Nilai XAML

Nilai Deskripsi
bindProp1, bindPropN Nama properti atau BindingBase yang Binding akan diatur. Tidak semua Binding properti dapat diatur dengan Binding ekstensi, dan beberapa properti diatur dalam Binding ekspresi hanya dengan menggunakan ekstensi markup berlapis lebih lanjut. Lihat bagian "Properti Pengikatan yang Dapat Diatur dengan Ekstensi Pengikatan".
value1, valueN Nilai untuk mengatur properti ke. Penanganan nilai atribut pada akhirnya khusus untuk jenis dan logika properti tertentu Binding yang ditetapkan.
path String jalur yang mengatur properti implisit Binding.Path . Lihat juga Sintaks PropertyPath XAML.

{Binding} tidak memenuhi syarat

Penggunaan {Binding} yang ditunjukkan dalam "Penggunaan Ekspresi Pengikatan" membuat Binding objek dengan nilai default, yang mencakup awal Binding.Path .null Ini masih berguna dalam banyak skenario, karena yang dibuat Binding mungkin mengandalkan properti pengikatan data utama seperti Binding.Path dan Binding.Source diatur dalam konteks data run-time. Untuk informasi selengkapnya tentang konsep konteks data, lihat Pengikatan Data.

Jalur Implisit

Binding Ekstensi markup menggunakan Binding.Path sebagai "properti default" konseptual, di mana Path= tidak perlu muncul dalam ekspresi. Jika Anda menentukan Binding ekspresi dengan jalur implisit, jalur implisit harus muncul terlebih dahulu dalam ekspresi, sebelum pasangan lainvaluebindProp=di mana Binding properti ditentukan berdasarkan nama. Misalnya: {Binding PathString}, di mana PathString adalah string yang dievaluasi menjadi nilai Binding.Path dalam Binding yang dibuat oleh penggunaan ekstensi markup. Anda dapat menambahkan jalur implisit dengan properti bernama lainnya setelah pemisah koma, misalnya, {Binding LastName, Mode=TwoWay}.

Properti Pengikatan yang Dapat Diatur dengan Ekstensi Pengikatan

Sintaks yang ditunjukkan dalam topik ini menggunakan perkiraan generik bindProp=value , karena ada banyak properti BindingBase baca/tulis atau Binding yang dapat diatur melalui Binding sintaks ekstensi /ekspresi markup. Mereka dapat diatur dalam urutan apa pun, dengan pengecualian implisit Binding.Path. (Anda memiliki opsi untuk secara eksplisit menentukan Path=, dalam hal ini dapat diatur dalam urutan apa pun). Pada dasarnya, Anda dapat mengatur nol atau lebih properti dalam daftar di bawah ini, menggunakan bindProp=value pasangan yang dipisahkan oleh koma.

Beberapa nilai properti ini memerlukan jenis objek yang tidak mendukung konversi jenis asli dari sintaks teks di XAML, dan dengan demikian memerlukan ekstensi markup agar ditetapkan sebagai nilai atribut. Periksa bagian Penggunaan Atribut XAML di Pustaka Kelas .NET Framework untuk setiap properti untuk informasi selengkapnya; string yang Anda gunakan untuk sintaks atribut XAML dengan atau tanpa penggunaan ekstensi markup lebih lanjut pada dasarnya sama dengan nilai yang Binding Anda tentukan dalam ekspresi, dengan pengecualian bahwa Anda tidak menempatkan tanda kutip di sekitar masing-masingvaluebindProp=dalam Binding ekspresi.

  • BindingGroupName: string yang mengidentifikasi kemungkinan grup pengikatan. Ini adalah konsep pengikatan yang relatif canggih; lihat halaman referensi untuk BindingGroupName.

  • BindsDirectlyToSource: Boolean, dapat berupa true atau false. Default adalah false.

  • Converter: dapat diatur sebagai bindProp=value string dalam ekspresi, tetapi untuk melakukannya memerlukan referensi objek untuk nilai tersebut, seperti Ekstensi Markup StaticResource. Nilai dalam hal ini adalah instans kelas pengonversi kustom.

  • ConverterCulture: dapat diatur dalam ekspresi sebagai pengidentifikasi berbasis standar; lihat topik referensi untuk ConverterCulture.

  • ConverterParameter: dapat diatur sebagai bindProp=value string dalam ekspresi, tetapi ini tergantung pada jenis parameter yang diteruskan. Jika meneruskan jenis referensi untuk nilai, penggunaan ini memerlukan referensi objek seperti Ekstensi Markup StaticResource berlapis.

  • ElementName: saling eksklusif versus RelativeSource dan Source; masing-masing properti pengikatan ini mewakili metodologi pengikatan tertentu. Lihat Gambaran Umum Pengikatan Data.

  • FallbackValue: dapat diatur sebagai bindProp=value string dalam ekspresi, tetapi ini tergantung pada jenis nilai yang diteruskan. Jika meneruskan jenis referensi, memerlukan referensi objek seperti Ekstensi Markup StaticResource berlapis.

  • IsAsync: Boolean, dapat berupa true atau false. Default adalah false.

  • Mode: nilai adalah nama konstanta dari BindingMode enumerasi. Contohnya, {Binding Mode=OneWay}.

  • NotifyOnSourceUpdated: Boolean, dapat berupa true atau false. Default adalah false.

  • NotifyOnTargetUpdated: Boolean, dapat berupa true atau false. Default adalah false.

  • NotifyOnValidationError: Boolean, dapat berupa true atau false. Default adalah false.

  • Path: string yang menjelaskan jalur ke dalam objek data atau model objek umum. Format ini menyediakan beberapa konvensi berbeda untuk melintasi model objek yang tidak dapat dijelaskan secara memadai dalam topik ini. Lihat Sintaks PropertyPath XAML.

  • RelativeSource: saling eksklusif versus dengan ElementName dan Source; masing-masing properti pengikatan ini mewakili metodologi pengikatan tertentu. Lihat Gambaran Umum Pengikatan Data. Memerlukan penggunaan RelativeSource MarkupExtension berlapis untuk menentukan nilai.

  • Source: saling eksklusif versus RelativeSource dan ElementName; masing-masing properti pengikatan ini mewakili metodologi pengikatan tertentu. Lihat Gambaran Umum Pengikatan Data. Memerlukan penggunaan ekstensi berlapis, biasanya Ekstensi Markup StaticResource yang mengacu pada sumber data objek dari kamus sumber daya kunci.

  • StringFormat: string yang menjelaskan konvensi format string untuk data terikat. Ini adalah konsep pengikatan yang relatif canggih; lihat halaman referensi untuk StringFormat.

  • TargetNullValue: dapat diatur sebagai bindProp=value string dalam ekspresi, tetapi ini tergantung pada jenis parameter yang diteruskan. Jika meneruskan jenis referensi untuk nilai tersebut, memerlukan referensi objek seperti Ekstensi Markup StaticResource berlapis.

  • UpdateSourceTrigger: nilai adalah nama konstanta dari UpdateSourceTrigger enumerasi. Contohnya, {Binding UpdateSourceTrigger=LostFocus}. Kontrol tertentu berpotensi memiliki nilai default yang berbeda untuk properti pengikatan ini. Lihat UpdateSourceTrigger.

  • ValidatesOnDataErrors: Boolean, dapat berupa true atau false. Default adalah false. Lihat Keterangan.

  • ValidatesOnExceptions: Boolean, dapat berupa true atau false. Default adalah false. Lihat Keterangan.

  • XPath: string yang menjelaskan jalur ke XMLDOM sumber data XML. Lihat Mengikat ke Data XML Menggunakan XMLDataProvider dan Kueri XPath.

Berikut ini adalah properti Binding yang tidak dapat diatur menggunakan Binding formulir ekstensi/{Binding} ekspresi markup.

  • UpdateSourceExceptionFilter: properti ini mengharapkan referensi ke implementasi panggilan balik. Callback/metode selain penanganan aktivitas tidak dapat dirujuk dalam sintaks XAML.

  • ValidationRules: properti mengambil kumpulan ValidationRule objek generik. Ini dapat dinyatakan sebagai elemen properti dalam Binding elemen objek, tetapi tidak memiliki teknik penguraian atribut yang tersedia untuk penggunaan dalam Binding ekspresi. Lihat topik referensi untuk ValidationRules.

  • XmlNamespaceManager

Keterangan

Penting

Dalam hal prioritas properti dependensi, Binding ekspresi setara dengan nilai yang ditetapkan secara lokal. Jika Anda menetapkan nilai lokal untuk properti yang sebelumnya memiliki Binding ekspresi, Binding akan dihapus sepenuhnya. Untuk detailnya, lihat Prioritas Nilai Properti Dependensi.

Menjelaskan pengikatan data pada tingkat dasar tidak tercakup dalam topik ini. Lihat Gambaran Umum Pengikatan Data.

Catatan

MultiBinding dan PriorityBinding tidak mendukung sintaks ekstensi XAML. Sebagai gantinya, Anda akan menggunakan elemen properti. Lihat topik referensi untuk MultiBinding dan PriorityBinding.

Nilai Boolean untuk XAML tidak peka huruf besar/kecil. Misalnya Anda dapat menentukan atau {Binding NotifyOnValidationError=true}{Binding NotifyOnValidationError=True}.

Pengikatan yang melibatkan validasi data biasanya ditentukan oleh elemen eksplisit Binding daripada sebagai {Binding ...} ekspresi, dan pengaturan ValidatesOnDataErrors atau ValidatesOnExceptions dalam ekspresi jarang terjadi. Ini karena properti ValidationRules pendamping tidak dapat dengan mudah diatur dalam formulir ekspresi. Untuk informasi selengkapnya, lihat Menerapkan Validasi Pengikatan.

Binding adalah ekstensi markup. Ekstensi markup biasanya diimplementasikan ketika ada persyaratan untuk meloloskan nilai atribut menjadi selain nilai harfiah atau nama handler, dan persyaratannya lebih global daripada pengonversi jenis yang diatribusikan pada jenis atau properti tertentu. Semua ekstensi markup di XAML menggunakan { karakter dan } dalam sintaks atributnya, yang merupakan konvensi di mana prosesor XAML mengenali bahwa ekstensi markup harus memproses konten string. Untuk informasi selengkapnya, lihat Ekstensi Markup dan WPF XAML.

Binding adalah ekstensi markup atipikal di kelas yang Binding mengimplementasikan fungsionalitas ekstensi untuk implementasi XAML WPF juga menerapkan beberapa metode dan properti lain yang tidak terkait dengan XAML. Anggota lain dimaksudkan untuk membuat Binding kelas yang lebih serbaguna dan mandiri yang dapat mengatasi banyak skenario pengikatan data selain berfungsi sebagai ekstensi markup XAML.

Baca juga