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, <Binding
bindProp1 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 lainvalue
bindProp
=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-masingvalue
bindProp
=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
ataufalse
. Default adalahfalse
.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
ataufalse
. Default adalahfalse
.Mode: nilai adalah nama konstanta dari BindingMode enumerasi. Contohnya,
{Binding Mode=OneWay}
.NotifyOnSourceUpdated: Boolean, dapat berupa
true
ataufalse
. Default adalahfalse
.NotifyOnTargetUpdated: Boolean, dapat berupa
true
ataufalse
. Default adalahfalse
.NotifyOnValidationError: Boolean, dapat berupa
true
ataufalse
. Default adalahfalse
.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
ataufalse
. Default adalahfalse
. Lihat Keterangan.ValidatesOnExceptions: Boolean, dapat berupa
true
ataufalse
. Default adalahfalse
. 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.
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.
Lihat juga
.NET Desktop feedback