Apa arti “{Binding Path =.}” Dalam pengikatan WPF?

91

Apa {Binding Path=.}artinya dalam pengikatan WPF?

Saya melihat beberapa orang menggunakannya, tetapi tidak dapat menemukan penjelasan apa pun.

Apakah ada simbol khusus lainnya dalam sintaks penjilidan (selain {Binding /})?

Sergey Aldoukhov
sumber

Jawaban:

60

Ini adalah singkatan dari pengikatan ke sumber saat ini. Untuk info lebih lanjut lihat di sini .

Dari dokumentasi khusus:

Secara opsional, jalur titik (.) Dapat digunakan untuk mengikat ke sumber saat ini. Misalnya, Text="{Binding}"setara dengan Text="{Binding Path=.}".

micahtan
sumber
1
@Ray - tepatnya pikiranku. Jika Anda ingin menyingkat, mengapa berhenti di situ?
micahtan
5
Saya tidak bisa membantah MSDN, tetapi masih ada perbedaan. {Binding} tidak dapat digunakan pada objek itu sendiri (karena dua cara itu membutuhkan properti) saat {Binding Path =.} Bekerja.
Sergey Aldoukhov
@Sergey - Apakah Anda memiliki contoh kode di mana {Binding} tidak berfungsi tetapi {Binding Path =.} Berfungsi? Jika demikian, MSDN mungkin perlu diperbarui ...
micahtan
Mudah: var s = "test; DataContext = s; dan di <TextBox Text = {Binding} /> - tidak bekerja. Tapi MSDN bukan wiki ...
Sergey Aldoukhov
8
Contoh lain: <TextBlock Text = "{Binding Converter = ...}" /> tidak berfungsi karena Anda harus menyetel Path. Dalam hal ini Path =. berguna.
Nicolas
69

Saya menemukan WPF Binding CheatSheet ini beberapa bulan yang lalu dan merasa sangat berguna, terutama bagi siapa saja yang mempelajari WPF. Ada beberapa kesalahan ejaan di dalamnya, tapi masih cukup bagus.

Berikut adalah kutipan kecil (yang seharusnya memiliki format tabel):

Basic Binding   
{Binding}  Bind to current DataContext. 
{Binding Name}  Bind to the “Name” proeprty of the current DataContext. 
{Bindind Name.Length}  Bind to the Length property of the object in the Name property of the current DataContext. 
{Binding ElementName=SomeTextBox, Path=Text}  Bind to the “Text” property of the element XAML element with name=”SomeTextBox” or x:Name=”SomeTextBox”. 

Tautan langsung ke CheatSheet

Ryan Versaw
sumber
2
bagus tapi apa itu {Binding.}. Saya mencari penjelasan untuk yang satu ini tetapi saya tidak dapat menemukannya?
Emil
@batmaci Saya ingin mengatakan itu setara dengan {Binding }, tapi sudah beberapa tahun sejak saya bekerja banyak dengan Xaml, jadi saya tidak yakin.
Ryan Versaw
@batmaci, bertahun-tahun kemudian ... {Binding string}mirip dengan {Binding Path=string}. stringtidak digunakan untuk menginisialisasi properti Pathsecara langsung, tetapi sebagai parameter untuk konstruktor Binding (string path)yang kemudian menginisialisasi Pathproperti. Ini hanya berfungsi jika string adalah token pertama setelahnya Binding, sisanya adalah penginisialisasi reguler (pasangan properti = nilai). Mengetahui itu, Binding .berlaku sama dengan Binding Path=.dan sintaks Path properti tersedia di sini .
menit