Lekce 41 - WPF - Přehled prvků pro vkládání dat
V minulé lekci, WPF - Základní ovládací prvky WPF, jsme si uvedli společné vlastnosti a události pro ovládací prvky WPF frameworku.
Dnešní lekce je věnována prvkům, přes které je možné do formuláře vkládat data. Jedná se o tyto prvky:
CalendarComboBoxDatePickerListBoxPasswordBoxRichTextBoxTextBox
Calendar (Kalendář)
Kalendář představuje ovládací prvek, přes který se zadává datum nebo rozsah datumů.

Kalendář pracuje ve 4 módech výběru hodnot (určujeme přes vlastnost
SelectionMode):
SingleDate– výběr jednoho dneSingleRange– výběr souvislé oblasti dnůMultipleRange– výběr několika souvislých oblastí dnůNone– bez výběru dnů, pouze pro prohlížení
Kromě toho má ještě 3 módy zobrazení (určujeme přes vlastnost
DisplayMode):
Month– zobrazení rozpisu dní ve vybraném měsíciYear– zobrazení rozpisu měsíců ve vybraném roceDecade– zobrazení rozpisu roků
Vlastnosti
DisplayDateEnd– nastavuje koncové datumDisplayDateStart– nastavuje počáteční datumDisplayMode– nastavuje mód zobrazeníFirstDayOfWeek– nastavuje den, kterým má začínat týdenIsTodayHighlighted– zda má být zvýrazněné jaký je dnes den (truenebofalse)SelectedDate– nastavuje nebo vrací vybraný denSelectedDates– nastavuje nebo vrací kolekci vybraných dnůSelectionMode– nastavuje mód výběru
Události
SelectedDatesChanged– při změně datumu spustí přiřazenou metoduDisplayModeChanged– při změně módu zobrazení spustí přiřazenou metodu
Příklad
XAML
<Calendar x:Name="calKalendar" BorderBrush="Black" BorderThickness="2,2,1,1" SelectedDatesChanged="ZobrazDen"/>
C#
Událost SelectedDatesChanged:
private void ZobrazDen(object sender, SelectionChangedEventArgs e) { DateTime pomDat = calKalendar.SelectedDate.Value; lblDen.Content = pomDat.ToShortDateString(); }
ComboBox (Pole výběru)
Prvek, který slouží k výběru hodnoty ze seznamu. Na rozdíl od
ListBoxu je seznam rozbalovací a umožňuje výběr pouze jedné
hodnoty.

Vlastnosti
IsDropDownOpen– zobrazíComboBoxs již rozbaleným seznamemIsEditable- povoluje zadat hodnotu, která není v seznamuItems– položky (textové řetězce nebo objekty)ItemsSource– zdroj dat (textové pole typu List nebo kolekce objektů)SelectionMode– vybraný módSelectedIndex– vybraný indexSelectedItem– vybraná položkaSelectedValue– vybraná hodnota
Události
SelectionChanged– při změně výběru se spustí přiřazená metoda
Příklad
XAML
<ComboBox x:Name="cbxVolba" Grid.Row="13" Width="200" HorizontalAlignment="Left" Height="30" SelectedIndex="0" VerticalContentAlignment="Center"> <ComboBoxItem>Položka 1</ComboBoxItem> <ComboBoxItem>Položka 2</ComboBoxItem> <ComboBoxItem>Položka 3</ComboBoxItem> <ComboBoxItem>Položka 4</ComboBoxItem> <ComboBoxItem>Položka 5</ComboBoxItem> </ComboBox>
Nebo vytvoříme obdobně jako je to u prvku ListBox, viz
dále.
C#
Událost SelectionChanged:
private void Volba(object sender, SelectionChangedEventArgs e) { if (inic) { ComboBox cbx = sender as ComboBox; lblVybranoCbx.Content = cbx.SelectedValue.ToString(); } }
DatePicker (Datum)
Tento prvek slouží k zadávání datumu. I když používá k výběru
komponentu Calendar, lze zadat pouze jednu hodnotu.

Vlastnosti
DisplayDateEnd– nastavuje koncové datumDisplayDateStart– nastavuje počáteční datumFirstDayOfWeek– nastavuje den, kterým má začínat týdenIsTodayHighlighted– zda má být zvýrazněné jaký je dnes den (truenebofalse)SelectedDate– nastavuje nebo vrací vybraný den
Události
SelectedDateChanged– při změně datumu spustí přiřazenou metodu
Příklad
XAML
<DatePicker x:Name="dprDatum" Width="100" Height="25" BorderBrush="Black" BorderThickness="2,2,1,1" SelectedDateChanged="ZobrazDatum" />
C#
Událost SelectedDateChanged:
private void ZobrazDatum(object sender, SelectionChangedEventArgs e) { DateTime pomDat = dprDatum.SelectedDate.Value; lblDatum.Content = pomDat.ToShortDateString(); }
ListBox (Seznam výběru)
Prvek, který slouží k výběru hodnot ze seznamu. U prvku lze nastavit, zda se mají vybírat jednotlivé hodnoty nebo více hodnot najednou.

Vlastnosti
Items– položky (textové řetězce nebo objekty)ItemsSource– zdroj dat (textové pole typu List nebo kolekce objektů)SelectedIndex– index vybrané položkySelectedItem– vybraná položkaSelectedItems– obsahuje kolekci vybraných položek (pokud je vlastnostMultiplenastavená natrue)SelectionMode– nastavuje mód výběru. Existují 3 módy:Single– výběr jedné položkyMultiple– výběr více položekExtended– výběr více položek najednou pomocí kláves Ctrl a Shift
Události
SelectionChanged– při změně výběru se spustí přiřazená metoda
Příklad
XAML
<ListBox x:Name="lbxSeznam" Width="200" HorizontalAlignment="Left" BorderBrush="Black" BorderThickness="2,2,1,1"> <ListBoxItem>Položka 1</ListBoxItem> <ListBoxItem>Položka 2</ListBoxItem> <ListBoxItem>Položka 3</ListBoxItem> <ListBoxItem>Položka 4</ListBoxItem> <ListBoxItem>Položka 5</ListBoxItem> </ListBox>
nebo
<ListBox x:Name="lbxSeznam" Width="200" HorizontalAlignment="Left" BorderBrush="Black" BorderThickness="2,2,1,1"/>
C#
public MainWindow() { InitializeComponent(); ... lbxSeznam.Items.Add("Položka 1"); lbxSeznam.Items.Add("Položka 2"); lbxSeznam.Items.Add("Položka 3"); lbxSeznam.Items.Add("Položka 4"); lbxSeznam.Items.Add("Položka 5"); }
nebo
public MainWindow() { InitializeComponent(); ... List<string> seznam = new List<string>(); seznam.Add("Položka 1"); seznam.Add("Položka 2"); seznam.Add("Položka 3"); seznam.Add("Položka 4"); seznam.Add("Položka 5"); lbxSeznam.ItemsSource = seznam; }
Událost SelectionChanged:
XAML
<ListBox x:Name="lbxSeznam" Width="200" HorizontalAlignment="Left" BorderBrush="Black" BorderThickness="2,2,1,1" SelectionMode="Extended" SelectionChanged="Vybrano"/>
C#
private void Vybrano(object sender, SelectionChangedEventArgs e) { int pocet = 0; foreach (string polozka in lbxSeznam.SelectedItems) { pocet += 1; } lblVybrano.Content = "Vybráno " + pocet.ToString() + " záznamů"; }
S dalšími prvky pro vkládání dat budeme pokračovat v příští lekci, WPF - Prvky pro ukládání dat a popisné prvky.


