/// <summary>
 /// Uncollapses all groups of the ListView by adding them back.
 /// </summary>
 public void UnCollapseAllGroups()
 {
     foreach (var taxon in HiddenTaxonList)
     {
         SelectedTaxonListSource.Add(taxon);
     }
     HiddenTaxonList.Clear();
     AddListsToGroups(SelectedTaxonListSource);
 }
 /// <summary>
 /// Remove Taxa without Diagnosis from underlying List-source, add lists to groups
 /// </summary>
 public void UpdateSelectedTaxonListSource()
 {
     SelectedTaxonListSource.RemoveAll(i => !i.HasDiagnosis);
     PlaceholderText = $"Suchen in {SelectedTaxonListSource.Count} Arten";
     OnPropertyChanged(nameof(PlaceholderText));
     SelectedTaxonList.Clear();
     AddListsToGroups(SelectedTaxonListSource.OrderBy(i => i.LocalName).ThenBy(i => i.TaxonName));
     SelectedTaxonList.RefreshView();
     OnPropertyChanged(nameof(SelectedTaxonList));
 }
 /// <summary>
 /// Collapses all groups of the ListView and backing the data up.
 /// </summary>
 public void CollapseAllGroups()
 {
     SearchText = "";
     foreach (var taxonGroup in SelectedTaxonList)
     {
         foreach (var taxon in taxonGroup)
         {
             SelectedTaxonListSource.Remove(taxon);
             HiddenTaxonList.Add(taxon);
         }
     }
     AddListsToGroups(SelectedTaxonListSource);
 }
        public void ToggleGroupingByOrderName(string orderName)
        {
            List <Taxon> tempTBDTaxa = new List <Taxon>();

            bool foundInSelected = false;

            foreach (var taxonGroup in SelectedTaxonList)
            {
                foreach (var taxon in taxonGroup)
                {
                    if (taxon.OrderName == orderName)
                    {
                        foundInSelected = true;
                    }
                    HiddenTaxonList.Add(taxon);
                }
            }

            SelectedTaxonListSource.Clear();

            if (!foundInSelected)
            {
                foreach (var taxon in HiddenTaxonList)
                {
                    if (taxon.OrderName == orderName)
                    {
                        SelectedTaxonListSource.Add(taxon);
                        tempTBDTaxa.Add(taxon);
                    }
                }
                foreach (Taxon t in tempTBDTaxa)
                {
                    HiddenTaxonList.Remove(t);
                }
            }

            AddListsToGroups(SelectedTaxonListSource);
        }