Elementlarni bog'lash (Binding)
Mumtozbekov
Ma'lumotlarni bog'lashdagi eng sodda ko'rinish, WPF elementining qaram xususiyatiga(Dependency Property) bog'lash ko'zda tutilgan. Sababi qaram xususiyatlari ma'lumot o'zgarganda hech qanday qo'shimcha narsalarsiz o'zgarish haqida bildirish xususiyatiga ega, bu esa ayni zarur imkoniyat.
Ko'p xollarda bog'lashlar elementlarni ma'lumot obyeklariga bog'lash uchun ishlatiladi, ma'lumotlar bazasi yoki fayldan olib ko'rsatish uchun. Ammo ikkita yoki bir qancha elementlarni bir-biri bilan bog'lab ishlatish ham ko'p foyda beradi. Bu elementlarni o'zaro tasirini avtomatlashtirish imkonini beradi ya'ni foydalanuvchi bir elementni o'zgartirsa boshqasi avtomatik yangilanadi. Bu ham juda keraklik va foydali imkoniyat deb bilaman.
Yaxshiroq tushunish uchun bir misolni ko'rib chiqamiz. Oynada Slider va TextBlock bo'ladi, ularni o'zaro bog'lab ko'ramiz:
<StackPanel>
<Slider Minimum="12" Maximum="32" Name="sld"/>
<TextBlock Text="{Binding ElementName=sld,Path=Value}"
FontSize="{Binding ElementName=sld,Path=Value}"/>
</StackPanel>

Bu misolda bog'lanish(Binding) TextBlock elementida joylashgan, TextBlockning Text va FontSize xususiyatlari Sliderning Value xususiyatiga bog'langan Sliderni qiymati o'zgarishi bilan TextBlockning Text va FontSize xususiyatlaridagi qiymatlar ham o'zgaradi.
Bog'lanishlarni o'rnatish uchun XAML Extension ishlatiladi shuning uchun figuralik qavs ichiga yoziladi. Boshida Binding yoziladi chunki System.Windows.Data.Binding sinfidan obyekt olinadi. Binding obyektini yaratishda har-xil parametrlardan foydalanish mumkin lekin yuqoridagi misolimizda faqatgina ElementName va Path xususiyatlari ishlatildi. Nega endi "Path" deb nomlangan "Property" emas deyilsa chunki bu faqatgina xususiyatni emas xususiyatning xususiyati (Car.Engine.Volume) yoki Indexatorlar bilan ham(Users[2].Name) bog'lash mumkin ya'ni bu bog'lanishi kerak bo'lgan xususiyatga yo'lni ko'rsatadi.
Bog'lashdagi xatolar
WPF bog'lanishdagi xatolar uchun istisno(Exception)lar tashlamaydi. Unday bo'lsa xatolarni qanday aniqlaymiz deyilsa, WPF bog'lashdagi xatolarni Console da batafsil yozadi.