Ejemplo n.º 1
0
        private void addHierachicalGroup(PwGroupViewModel group, int hierarchicalLevel)
        {
            HierarchicalGroups.Add(group);
            group.HierachicalLevel = hierarchicalLevel;

            foreach (var groupVM in group.Groups)
            {
                addHierachicalGroup(groupVM, hierarchicalLevel + 1);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Update the FilteredEntries property with the list of entries corresponding to the provided filter
        /// </summary>
        /// <param name="filter"></param>
        public void UpdateFilterededEntries(string filter)
        {
            Filter = filter;

            string lowcaseFilter = filter.ToLower();

            if (SettingsViewModel.Instance.ViewCollectionAsTree)
            {
                if (CurrentGroup != null)
                {
                    // Apply the filter to all subgroups
                    foreach (var group in HierarchicalGroups)
                    {
                        group.UpdateFilteredEntries(filter);
                    }

                    // If the selected group is empty, switch to the first with a least an entry
                    if (CurrentGroup.FilteredEntriesEmpty)
                    {
                        var group = HierarchicalGroups.FirstOrDefault(g => !g.FilteredEntriesEmpty);
                        if (group != null)
                        {
                            CurrentGroup = group;
                        }
                    }
                }
            }
            else
            {
                FilteredGroupedEntries.Clear();
                // Or filter the grouped view
                foreach (var group in _groups)
                {
                    group.UpdateFilteredEntries(filter);
                    if (group.FilteredEntries.Count > 0)
                    {
                        FilteredGroupedEntries.Add(group);
                    }
                }
            }
        }