/// <summary>
        /// Obluha tlačítka pro vyhledání záznamů dle zadaných parametrů.
        /// Kontrola zvolených filtrů a následné vyhledání záznamů dle zadaných kritérií.
        /// </summary>
        /// <param name="sender">Tlačítko</param>
        /// <param name="e">Vyvolaná událost</param>
        private void VyhledatButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // Pokud je zvoleno zobrazení příjmů a zároveň není zvoleno zobrazení výdajů, vyhledají se všechny příjmy
                if (Prijmy_CheckBox.IsChecked == true && Vydaje_CheckBox.IsChecked == false)
                {
                    Controller.AktualizujZobrazovaneZaznamyDleKategoriePrijmuVydaju(KategoriePrijemVydaj.Prijem);
                }

                // Pokud je zvoleno zobrazení výdajů a zároveň není zvoleno zobrazení příjmů, vyhledají se všechny výdaje
                if (Prijmy_CheckBox.IsChecked == false && Vydaje_CheckBox.IsChecked == true)
                {
                    Controller.AktualizujZobrazovaneZaznamyDleKategoriePrijmuVydaju(KategoriePrijemVydaj.Vydaj);
                }

                // Kontrola zda je zvoleno zobrazení příjmů nebo výdajů
                if (Prijmy_CheckBox.IsChecked == false && Vydaje_CheckBox.IsChecked == false)
                {
                    throw new ArgumentException("Zvolte jaké záznamy chcete vyhledat! \n\tPříjmy - Výdaje");
                }

                // Vyhledání záznamů se zadaným názvem
                if (Nazev_CheckBox.IsChecked == true)
                {
                    // Kontrola zda byl zadán název
                    if (!(Nazev.Length > 0))
                    {
                        throw new ArgumentException("Zadejte název!");
                    }

                    // Aktualizace záznamů se zadaným názvem
                    Controller.AktualizujZobrazovaneZaznamyDleNazvu(Nazev);
                }

                // Vyhledání záznamů dle data
                if (Datum_CheckBox.IsChecked == true)
                {
                    Controller.AktualizujZobrazovaneZaznamyDleData(Datum_MIN, Datum_MAX);
                }

                // Vyhledání záznamů dle hodnoty
                if (Hodnota_CheckBox.IsChecked == true)
                {
                    if (!(Hodnota_MIN.ToString().Length > 0))
                    {
                        throw new ArgumentException("Zadejte minimální hodnotu pro vyhledávání");
                    }

                    if (!(Hodnota_MAX.ToString().Length > 0))
                    {
                        throw new ArgumentException("Zadejte maximální hodnotu pro vyhledávání");
                    }

                    // Aktualizace záznamů v zadaném rozmezí hodnoty
                    Controller.AktualizujZobrazovaneZaznamyDleHodnoty(Hodnota_MIN, Hodnota_MAX);
                }

                // Vyhledání záznamů dle kategorie
                if (Kategorie_CheckBox.IsChecked == true)
                {
                    // Kontrola zda byla vybrána kategorie
                    if (kategorie == Kategorie.Nevybrano)
                    {
                        throw new ArgumentException("Vyberte kategorii!");
                    }

                    // Aktualizace záznamu dle kategorie
                    Controller.AktualizujZobrazovaneZaznamyDleKategorie(kategorie);
                }

                // Vyhledání záznamů dle počtu položek
                if (Polozky_CheckBox.IsChecked == true)
                {
                    if (!(PocetPolozek_MIN.ToString().Length > 0))
                    {
                        throw new ArgumentException("Zadejte minimální počet položek pro vyhledávání");
                    }

                    if (!(PocetPolozek_MAX.ToString().Length > 0))
                    {
                        throw new ArgumentException("Zadejte maximální počet položek pro vyhledávání");
                    }

                    // Aktualizace záznamu s počtem položek v zadaném rozmezí
                    Controller.AktualizujZobrazovaneZaznamyDlePoctuPolozek(PocetPolozek_MIN, PocetPolozek_MAX);
                }

                // Upozornění pro případ že zadaným kritértiím nevyhovují žádné záznamy
                if (!(Controller.VratPocetZobrazovanychZaznamu() > 0))
                {
                    Controller.AktualizujZobrazovaneZaznamy();
                    throw new ArgumentException("Nebyly nalezeny žádné záznamy");
                }

                // Vykreslení aktualizovaného seznamu záznamů s vyhledanými záznamy
                AktualizujZobrazeniZaznamu();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Chyba", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }