4. C#

4.3. Zobrazení pole

Pojďme se nyní podívat na metody umístěné v regionu Zobrazení pole, který je součástí regionu Události, ve kterém jsou umístěny metody pro obsluhu událostí objektů formuláře. Tento region obsahuje následující metody: 

  • BtnVektorJakoText_Click
  • BtnDoMrizky_Click

Abychom mohli vektor zobrazit jako text v objektu typu TextBox, je zapotřebí převést jeho obsah na text. V regionu Zobrazení pole, který je součástí regionu Pomocné metody, budeme deklarovat metodu PoleJakoText, která navrací textový řetězec, který bude obsahovat hodnoty jednotlivých prvků, které budou vypsány v řadě za sebou. Hodnoty budou od sebe odděleny čárkou. 

V metodě deklarujeme pomocnou lokální proměnnou vystup, do níž budeme ukládat výstupní řetězec - viz Kód 1. Lokální proměnnou budeme inicializovat textem a zároveň hodnotou uloženou v prvním prvku. Využijeme metody Format, která nám převede číslo (indexováno 0 ve složené závorce) do specifikovaného formátu, tj. na 3 číslice  (formát D3). Tato metoda je součástí třídy (datového typu) string. 

V cyklu s krokem budeme procházet prvky od druhého prvku a výše (hodnotu prvního prvku jsme již vypsali při inicializaci). V těle cyklu znovu použijeme konverzi třídy string, ale s tím rozdílem, že před každé další číslo umístíme čárku.

/// <summary>
/// Prvky vektoru jsou převedeny na text a odděleny čárkou
/// </summary>
/// <param name="n"> počet prvků vektoru </param>
/// <param name="pole"> vektor (předání parametru hodnotou - vstup) </param>
/// <returns></returns>     
private string PoleJakoText(int n, int[] pole)
{
    /* Lokální proměnná: výstup - výsledek převodu na text - inicializace 
     * hodnotou počátečního prvku v požadovaném formátu */
    string vystup = "Vektor:" + string.Format(" {0:D3}", pole[0]);
 
    // Procházení prvků vektoru - od 2. do posledního prvku 
    for (int i = 1; i < n; i++)
    {
        // Převod hodnoty prvku na text včetně připojení čárky
        vystup += string.Format(", {0:D3}", pole[i]);
    }
    // Návrat výsledného řetězce
    return vystup;
}

Kód 1: Deklarace metody pro převod prvků předaného pole do textového řetězce - oddělení prvků čárkami (PoleJakoText)

Další metodou, kterou budeme muset přidat do stejného regionu, je metoda bez návratu, která zajistí zobrazení vektoru v objektu typu TextBox s názvem TxtVysledek, který je umístěn na formuláři - viz Kód 2. V těle metody budeme volat předchozí deklarovanou metodu PoleJakoText, které předáme hodnotou počet prvků a vektor. Výstupní řetězec, obdržený jako návrat volané metody, přiřadíme do vlastnosti Text objektu TxtVysledek. 

/// <summary>
/// Zobrazení vektoru na formuláři jako text v objektu TextBox
/// </summary>
/// <param name="n"> počet prvků vektoru </param>
/// <param name="pole"> vektor </param>
private void ZobrazitPoleJakoText(int n, int[] pole)
{
    // Výpis vektoru v objektu TextBox na formuláři
    this.TxtVysledek.Text = this.PoleJakoText(n, pole);
}

Kód 2: Deklarace metody pro zavolání metody pro převod prvků pole na textový řetězec (ZobrazitPoleJakoText)

Abychom přiřadili akci tlačítku, které spustí zobrazení vektoru jako text, přemístíme se do regionu Události a jeho části Zobrazení pole. V tomto regionu upravíme metodu obsluhy události stisknutí tlačítka BtnVektorJakoText, která bude volat předchozí metodu ZobrazitPoleJakoText - viz Kód 3. Této metodě předáme předáme parametry počet prvků vektoru a samotný vektor. 

/// <summary>
/// Volání metody pro zobrazení vektoru jako text v objektu typu TextBox na formuláři
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnVektorJakoText_Click(object sender, RoutedEventArgs e)
{
    // Zavolání metody pro zobrazení vektoru jako text v objektu na formuláři
    this.ZobrazitPoleJakoText(this.pocetPrvku, this.pole);
}

Kód 3: Deklarace metody pro zavolání metody pro zobrazení vektoru jako text v objektu na formuláři (BtnVektorJakoText_Click)

Další metodou, kterou budeme deklarovat v regionu Pomocné metody v regionu Zobrazení pole, je soukromá metoda bez návratu s názvem ZobrazitPoleVListView - viz Kód 4. V tomto případě je metodě předán parametr ve formě pole. U objektu typu ListView musíme kvůli zobrazení pole v tomto objektu přiřadit objektu zdroj (vlastnost ItemSource), který bude v tomto objektu zobrazen. Na začátku přiřadíme zdroji objektu ListView hodnotu null (prázdná hodnota), tím zajistíme vymazání předchozího obsahu zobrazeného v tomto objektu. Jako další krok přiřadíme pole do zdroje objektu na formuláři.

/// <summary>
/// Zobrazení prvků vektoru na formuláři v objektu ListView
/// </summary>
private void ZobrazitPoleVListView(int[] pole)
{
    // Vymazání předchozí textu - přiřazení prázdné hodnoty zdroji objektu
    this.LstVektor.ItemsSource = null;
    // Zobrazení vektoru v objektu na formuláři
    this.LstVektor.ItemsSource = pole;
}

Kód 4: Deklarace metody pro zobrazení prvků předaného pole v objektu typu ListView (ZobrazitPoleVListView)

Přemístíme se zpět do regionu Události a jeho části Zobrazení pole. V tomto regionu upravíme metodu obsluhy události stisknutí tlačítka BtnDoMrizky - viz Kód 5. V rámci těla metody budeme volat předchozí deklarovanou metodu ZobrazitPoleVListView, které předáme jako parametr vektor.

/// Volání metody pro zobrazení prvků vektoru v objektu typu ListView na formuláři
/// ListView na formuláři
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnDoMrizky_Click(object sender, RoutedEventArgs e)
{
    // Zavolání metody pro zobrazení prvků vektoru do mřížky na formuláři
    this.ZobrazitPoleVListView(this.pole);
}

Kód 5: Deklarace metody pro zavolání metody pro zobrazení vektoru v objektu typu ListView na formuláři (BtnDoMrizky_Click)