Letní akce PHP týden
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Lekce 28 - WPF - Přehled prvků pro vkládání dat

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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ář v C# .NET WPF

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 (true nebo 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 hodnot ze seznamu. Na rozdíl od ListBoxu je seznam rozbalovací a umožňuje výběr pouze jedné hodnoty.

ComboBox v C# .NET WPF

Vlastnosti

  • IsDropDownOpen – zobrazí ComboBox s již rozbaleným seznamem
  • IsEditable - povoluje zadat hodnotu, která není v seznamu
  • Items – položky (jednotlivý text nebo strukturovaný záznam)
  • ItemsSource – zdroj dat (textové pole typu List nebo kolekce strukturovaných záznamů)
  • 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.

DatePicker v C# .NET WPF

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 (true nebo 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.

ListBox v C# .NET WPF

Vlastnosti

  • Items – položky (jednotlivý text nebo strukturovaný záznam)
  • ItemsSource – zdroj dat (textové pole typu List nebo kolekce strukturovaných záznamů)
  • SelectedIndex – index vybrané položky
  • SelectedItem – vybraná položka
  • SelectedItems – obsahuje kolekci vybraných položek (pokud je vlastnost Multiple nastavená 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.


 

 

Aktivity (3)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!