Penyelesaian Masalah DependencyProperty Mengikat dalam UserControls
Menetapkan usercontrol's ke DataContext
secara tiba -tiba dapat mengganggu pengikatan data ke sifat kawalan induk. Ini berlaku kerana mengikat kehilangan warisan harta this
. DataContext
Masalah dijelaskan
Apabila usercontrol ditetapkan untuk dirinya sendiri, pengikatan dalam usercontrol yang cuba mengakses sifat dari model pandangan kawalan induk akan gagal. Mekanisme yang mengikat tidak dapat mencari harta sasaran kerana ia melihat dalam konteks yang salah (usercontrol itu sendiri, bukan ibu bapanya). DataContext
Penyelesaian: leverage RelativeSource
dalam pembina UserControl. Sebaliknya, gunakan DataContext = this
dalam pengikatan XAML untuk mensasarkan kawalan induk RelativeSource
. DataContext
<TextBox Text="{Binding SelectedFile, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
dari nenek moyang terdekat jenis DataContext
, dengan berkesan mengakses model pandangan ibu bapa. UserControl
usercontrol ke harta yang sepadan dalam model pandangan ibu bapa: SelectedFile
<FileBrowserControl SelectedFile="{Binding SelectedFile}" />
DependencyProperty dan harta model pandangan ibu bapa, menyelesaikan masalah mengikat. SelectedFile
Atas ialah kandungan terperinci Mengapa menetapkan DataContext ke `ini` Break DependencyProperty mengikat dalam usercontrol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!