private void FilterChildNodes(TreeViewItem node)
        {
            if (node.HasItems)
            {
                var visibleNodeCount = node.Items.Cast <TreeViewItem>()
                                       .Select(i =>
                {
                    FilterChildNodes(i);
                    return(i);
                })
                                       .Where(i => i.Visibility == System.Windows.Visibility.Visible)
                                       .ToArray();

                if (visibleNodeCount.Count() == 0)
                {
                    node.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    node.Visibility = System.Windows.Visibility.Visible;
                }
            }
            else
            {
                var header = node.Header as TreeViewFieldHeader;
                if (header != null)
                {
                    node.Visibility = header.DisplayText.ToLower().Contains(FilterCriteria.ToLower()) ? Visibility.Visible : Visibility.Collapsed;
                }
            }
        }
Пример #2
0
        public async Task OnGetAsync()
        {
            if (FilterCriteria == null || FilterCriteria == "")
            {
                SortedEvents = await eventCatalogue.GetAllItems();
            }
            else
            {
                foreach (Event evt in await eventCatalogue.GetAllItems())
                {
                    bool add = false;

                    if (evt.Name.ToLower().Contains(FilterCriteria.ToLower()))
                    {
                        add = true;
                    }
                    else if (evt.Theme.ToLower().Contains(FilterCriteria.ToLower()))
                    {
                        add = true;
                    }

                    if (evt.RoomNr != RoomNr)
                    {
                        add = false;
                    }

                    if (add)
                    {
                        SortedEvents.Add(evt);
                    }
                }
            }

            SortedEvents.Sort(Comparer <Event> .Create((x, y) => x.Name.CompareTo(y.Name)));
        }