Bagikan melalui


Ekstensi Markup TemplateBinding

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

Penggunaan Atribut XAML

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

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

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

Nilai XAML

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

- atau -

Nama properti "putus-putus" yang didefinisikan oleh jenis yang berbeda dari jenis target yang di-template. Ini sebenarnya adalah PropertyPath. Lihat Sintaks PropertyPath XAML.

Keterangan

TemplateBinding adalah bentuk yang dioptimalkan dari Binding skenario templat, dianalogikan dengan yang Binding dibangun dengan {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}. TemplateBinding A selalu merupakan pengikatan satu arah, bahkan jika properti terlibat default ke pengikatan dua arah. Kedua properti yang terlibat harus berupa properti dependensi. Untuk mencapai pengikatan dua arah ke induk yang di-template menggunakan pernyataan pengikatan berikut sebagai gantinya {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 Kontrol dan Templat.

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

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

TemplateBinding juga dapat digunakan dalam penggunaan atribut verbose yang menentukan Property properti 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 verbose ini tidak khas.

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

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 dan WPF XAML.

Lihat juga