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:
- Calendar
- ComboBox
- DatePicker
- ListBox
- PasswordBox
- RichTextBox
- TextBox
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 dne
- SingleRange– 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íci
- Year– zobrazení rozpisu měsíců ve vybraném roce
- Decade– zobrazení rozpisu roků
Vlastnosti
- DisplayDateEnd– nastavuje koncové datum
- DisplayDateStart– nastavuje počáteční datum
- DisplayMode– nastavuje mód zobrazení
- FirstDayOfWeek– nastavuje den, kterým má začínat týden
- IsTodayHighlighted– zda má být zvýrazněné jaký je dnes den (- truenebo- false)
- SelectedDate– nastavuje nebo vrací vybraný den
- SelectedDates– 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 metodu
- DisplayModeChanged– 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 seznamem
- IsEditable- povoluje zadat hodnotu, která není v seznamu
- Items– položky (textové řetězce nebo objekty)
- ItemsSource– zdroj dat (textové pole typu List nebo kolekce objektů)
- SelectionMode– vybraný mód
- SelectedIndex– vybraný index
- SelectedItem– vybraná položka
- SelectedValue– 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é datum
- DisplayDateStart– nastavuje počáteční datum
- FirstDayOfWeek– nastavuje den, kterým má začínat týden
- IsTodayHighlighted– zda má být zvýrazněné jaký je dnes den (- truenebo- false)
- 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žky
- SelectedItem– vybraná položka
- SelectedItems– obsahuje kolekci vybraných položek (pokud je vlastnost- Multiplenastavená na- true)
- SelectionMode– nastavuje mód výběru. Existují 3 módy:- Single– výběr jedné položky
- Multiple– výběr více položek
- Extended– 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.
 
				
