예제 #1
0
 private void UpdateChildrenCheckState()
 {
     foreach (var childGroup in ChildGroups.Where(c => IsChecked != null))
     {
         childGroup.IsChecked = IsChecked;
     }
 }
예제 #2
0
        private void SetIsCheckedBasedOnChildGroups()
        {
            if (ChildGroups.All(g => g.IsShowChecked == true))
            {
                IsShowChecked = true;
            }
            else if (ChildGroups.Any(g => g.IsShowChecked == true || g.IsShowChecked == null))
            {
                IsShowChecked = null;
            }
            else
            {
                IsShowChecked = false;
            }

            if (ChildGroups.All(g => g.IsEnableChecked == true))
            {
                IsEnableChecked = true;
            }
            else if (ChildGroups.Any(g => g.IsEnableChecked == true || g.IsEnableChecked == null))
            {
                IsEnableChecked = null;
            }
            else
            {
                IsEnableChecked = false;
            }
        }
예제 #3
0
        public void AddGroup(LocalizationGroup group)
        {
            var list = ChildGroups.ToList();

            list.Add(group);
            ChildGroups = list.ToArray();
        }
예제 #4
0
 public void AddItems(List <LocalizationGroup> list)
 {
     if (ChildGroups == null || ChildGroups.Count() == 0)
     {
         ChildGroups = list.ToArray();
     }
     else
     {
         foreach (var group in list)
         {
             if (ChildGroups.FirstOrDefault(x => x.Name == group.Name) == null)
             {
                 AddGroup(group);
             }
             else
             {
                 if (group.ChildGroups != null && group.ChildGroups.Count() > 0)
                 {
                     ChildGroups.FirstOrDefault(x => x.Name == group.Name).AddItems(group.ChildGroups.ToList());
                 }
                 if (group.ChildItems != null && group.ChildItems.Count() > 0)
                 {
                     ChildGroups.FirstOrDefault(x => x.Name == group.Name).AddItems(group.ChildItems.ToList());
                 }
             }
         }
     }
 }
예제 #5
0
        private void OnChildGroupEmpty(FilteredGroup <T> childGroup)
        {
            bool remove;

            OnChildGroupEmpty(childGroup, out remove);
            if (remove)
            {
                ChildGroups.Remove(childGroup);
            }
        }
예제 #6
0
        private bool?DetermineCheckState()
        {
            var allChildrenChecked = ChildGroups.Count(x => x.IsChecked == true) == ChildGroups.Count;

            if (allChildrenChecked)
            {
                return(true);
            }

            var allChildrenUnchecked = ChildGroups.Count(x => x.IsChecked == false) == ChildGroups.Count;

            if (allChildrenUnchecked)
            {
                return(false);
            }

            return(null);
        }
예제 #7
0
        public void AddOrJoinBlockGroup(ItemFilterBlockGroup blockGroup)
        {
            var childIndex = ChildGroups.FindIndex(item => item.GroupName.Equals(blockGroup.GroupName));

            if (!blockGroup.IsLeafNode && childIndex >= 0)
            {
                while (blockGroup.ChildGroups.Count > 0)
                {
                    ChildGroups[childIndex].AddOrJoinBlockGroup(blockGroup.ChildGroups[0]);
                }
            }
            else
            {
                if (blockGroup.ParentGroup != null)
                {
                    blockGroup.ParentGroup.ChildGroups.Remove(blockGroup);
                }
                blockGroup.ParentGroup = this;
                ChildGroups.Add(blockGroup);
            }
        }