WPF 15 – Webový Prehliadač 2 – Binding

V 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.

public string Title {
    get
    {
        return _title;
    }
    set
    {
        _title = value;
        NotifyPropertyChanged("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ť.

public event PropertyChangedEventHandler PropertyChanged;

public void NotifyPropertyChanged(string propertyName)
{
    if (PropertyChanged != null)
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}

Ď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

dynamic Document = browser.Document;
Title = Document.Title;
NotifyPropertyChanged("Title");

Podobne upravíme aj konštruktor.

public BrowserPage()
{
    Title = "Nová Stránka";
    NotifyPropertyChanged("Title");
    InitializeComponent();
}

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.

<TabItem Header="{Binding ElementName=FirstBrowser, Path=Title}" PreviewMouseDown="TabItem_PreviewMouseDown_Page">
        <local:BrowserPage x:Name="FirstBrowser"  Width="Auto" Height="Auto"/>
</TabItem>

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.

Binding b = new Binding();
b.Source = page;
b.Path = new PropertyPath("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.

3 názory na “WPF 15 – Webový Prehliadač 2 – Binding”

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Scroll to Top