Jednorozměrné pole - WPF
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)