private void UpdateChildrenCheckState() { foreach (var childGroup in ChildGroups.Where(c => IsChecked != null)) { childGroup.IsChecked = IsChecked; } }
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; } }
public void AddGroup(LocalizationGroup group) { var list = ChildGroups.ToList(); list.Add(group); ChildGroups = list.ToArray(); }
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()); } } } } }
private void OnChildGroupEmpty(FilteredGroup <T> childGroup) { bool remove; OnChildGroupEmpty(childGroup, out remove); if (remove) { ChildGroups.Remove(childGroup); } }
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); }
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); } }