WPF 15 – Webový Prehliadač 2 – Binding

0
374

EP15V tomto, už pätnástom diely sa pozrieme na dátový binding, opäť na príklade webového prehliadača z minulého diela. Vďaka tomu sa bude jednať o kratší diel, ktorý dúfam ospravedlníte.

 

Úvod

Dátový binding je funkcia WPF dovoľujúca nám pevne previazať parameter prvku z inými dátami. Môžete ho previazať z klasickou vlastnosťou, ktorú ste vytvorili, parametrom iného objektu alebo aj vonkajším zdrojom. Dnes sa pozrieme práve na previazanie z vlastnosťou.

 

 

Úpravy starého kódu

V našej triede zo stránkou webového prehliadača BrowserPage.cs. Do nej pridajte novú vlastnosť s menom Title.

 

Asi ste si všimli novej metódy NotifyPropertyChanged. Tá je potrebná, aby sme program informovali, že sa niečo zmenilo. Preto musíte v tejto triede implementovať rozhranie INotifyPropertyChanged.  public partial class BrowserPage : UserControl, INotifyPropertyChanged

Pri implementácií pridáte nový event PropertyChanged, a metóda NotifyPropertyChanged ho bude len aktivovať.

 

Ďalej do metódy LoadComplete priraďte tejto vlastnosti hodnotu. Pri tom budete musieť vytvoriť dynamický odkaz na dokument a z neho túto premennú priradiť, a pre istotu aj zavoláme metódu NotifyPropertyChanged

Podobne upravíme aj konštruktor.

 

 

 

Priradenie Bindingu.

Najprv si priradíme Binding do našej prvej stránky – to spravíme z kódu XAML a priradíme ho Headeru TabItemu.

Najprv nastavíme Element na náš browser a ako cestu priradíme Title, čo je vlastnosť ktorú sme pred chvíľou vytvorili.

POZOR: Množinové zátvorky sú dôležité.

 

Ďalej budeme musieť z kódu C# priradiť Binding ostatným stránkam.

Namiesto toho, aby sme však hodnotu Headeru priraďovali ručne ako predtým, vytvoríme nový Binding. Jeho premennú Source nastavíme na našu stránku a Path nastavíme ako nový PropertyPath odkazujúci na premennú Title.

Na záver už len tento Binding priradíme nášmu TabItemu. item.SetBinding(TabItem.HeaderProperty, b);

 

 

Tým máme  všetko hotové a ja sa s vami v tomto dieli lúčim. Uvidíme sa nabudúce v dieli zameranom na použitie ComboBoxu.

 

 

Názory k článku

Please enter your comment!
Please enter your name here