Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 35 - 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ář v C# .NET WPF - WPF - Okenní aplikace v C# .NET

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

ComboBox v C# .NET WPF - WPF - Okenní aplikace v C# .NET

Vlastnosti

  • IsDropDownOpen – zobrazí ComboBox s 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.

DatePicker v C# .NET WPF - WPF - Okenní aplikace v C# .NET

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 - WPF - Okenní aplikace v C# .NET

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


 

Předchozí článek
WPF - Základní ovládací prvky WPF
Všechny články v sekci
WPF - Okenní aplikace v C# .NET
Přeskočit článek
(nedoporučujeme)
WPF - Prvky pro ukládání dat a popisné prvky
Článek pro vás napsal Petr Pospíšil
Avatar
Uživatelské hodnocení:
16 hlasů
Aktivity