Bagikan melalui


Ekstensi Markup TemplateBinding

Menautkan nilai properti dalam templat kontrol menjadi nilai properti lain pada kontrol templat.

Penggunaan Atribut XAML

<object property="{TemplateBinding sourceProperty}" ... />

Penggunaan Atribut XAML (untuk properti Setter dalam sebuah templat atau gaya)

<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />

Nilai XAML

Nilai Deskripsi
propertyName Properti DependencyProperty.Name yang diatur menggunakan sintaks setter.
sourceProperty Properti dependensi lain yang ada pada jenis yang di-template, ditentukan oleh DependencyProperty.Name.

- atau -

Nama properti "diberi titik" yang didefinisikan oleh jenis yang berbeda dari jenis target yang dibuat template. Ini sebenarnya adalah PropertyPath. Lihat Sintaks XAML PropertyPath .

Komentar

TemplateBinding adalah bentuk Binding yang dioptimalkan untuk skenario templat, dianalogikan dengan Binding yang dibangun dengan {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}. TemplateBinding selalu merupakan pengikatan satu arah, bahkan jika properti yang terlibat default ke pengikatan dua arah. Kedua properti yang terlibat harus berupa properti dependensi. Untuk mencapai pengikatan dua arah ke induk yang di-template, gunakan pernyataan pengikatan berikut sebagai pengganti {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.

RelativeSource adalah ekstensi markup lain yang kadang-kadang digunakan bersama dengan atau alih-alih TemplateBinding untuk melakukan pengikatan properti relatif dalam templat.

Menjelaskan templat kontrol sebagai konsep tidak tercakup di sini; untuk informasi selengkapnya, lihat Gaya dan Templat Kontrol.

Sintaks atribut adalah sintaks yang paling umum digunakan dengan ekstensi markup ini. Token string yang disediakan setelah string pengidentifikasi TemplateBinding ditetapkan sebagai nilai Property dari kelas ekstensi TemplateBindingExtension yang sesuai.

Sintaks elemen objek dimungkinkan, tetapi tidak ditampilkan karena tidak memiliki aplikasi yang realistis. TemplateBinding digunakan untuk mengisi nilai dalam setter, menggunakan ekspresi yang dievaluasi, serta menggunakan sintaks elemen objek untuk TemplateBinding. Menggunakan sintaks elemen properti untuk <Setter.Property> terlalu berlebihan.

TemplateBinding juga dapat digunakan dalam penggunaan atribut verbose yang menentukan properti Property sebagai pasangan properti=nilai:

<object property="{TemplateBinding Property=sourceProperty}" ... />

Penggunaan verbose sering berguna untuk ekstensi yang memiliki lebih dari satu properti yang dapat diatur, atau jika beberapa properti bersifat opsional. Karena TemplateBinding hanya memiliki satu properti yang dapat diatur, yang diperlukan, penggunaan yang berlebihan ini tidak umum.

Dalam implementasi prosesor WPF XAML, penanganan untuk ekstensi markup ini ditentukan oleh kelas TemplateBindingExtension.

TemplateBinding 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 hanya menempatkan pengonversi jenis 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 atribut. Untuk informasi selengkapnya, lihat Ekstensi Markup danWPF XAML .

Lihat juga