public TreeViewItemEx SearchPrev(TreeViewItemEx item) { int index = ParentItems.IndexOf(item); if (index == -1) { return(null); } TreeViewItemEx result = null; if (index != 0) { // В текущий коллекции найден предыдущий элемент result = (TreeViewItemEx)ParentItems[index - 1]; } else if (ParentItem != null) { result = ParentItem; } else { // Перебор по родителям, любой следующий дочерний элемент будет найденным result = SearchPrev(ParentItem); } return(result); }
internal Model.Member FindMe(string id) { if(Items == null || Items.Count <= 0) { return null; } Model.Member member = Items.FirstOrDefault(x => x.Id == id); if(member != null) { member.IsMe = true; switch(member.Auth) { case AuthType.STUDENT: Student student = StudentItems.Single(x => x.Id == id); student.IsMe = true; break; case AuthType.TEACHER: Teacher teacher = TeacherItems.Single(x => x.Id == id); teacher.IsMe = true; break; case AuthType.PARENT: Parent parent = ParentItems.Single(x => x.Id == id); parent.IsMe = true; break; } return member; } return new Model.Member(); }
/// <summary> /// Pres the save. /// </summary> /// <param name="dbContext">The database context.</param> /// <param name="state">The state.</param> public override void PreSaveChanges(DbContext dbContext, System.Data.Entity.EntityState state) { if (state == System.Data.Entity.EntityState.Deleted) { ChildItems.Clear(); ParentItems.Clear(); } }
internal void AddParent(Parent parent) { lock (_lock) { // Once locked, you can manipulate the collection safely from another thread ParentItems.Add((Parent)parent.Clone()); } }
/// <summary> /// Pres the save. /// </summary> /// <param name="dbContext">The database context.</param> /// <param name="state">The state.</param> public override void PreSaveChanges(Data.DbContext dbContext, System.Data.Entity.EntityState state) { var channel = this.ContentChannel; if (state == System.Data.Entity.EntityState.Deleted) { ChildItems.Clear(); ParentItems.Clear(); } base.PreSaveChanges(dbContext, state); }
private void LoadDummyParentItems() { for (var i = 0; i < 20; i++) { ParentItems.Add(new ParentItem() { Name = $"Parent Item {i}", CreatedOn = DateTime.Now.AddHours(i), IsActive = i % 2 == 0 ? true : false, Status = i % 2 == 0 ? ParentItemStatus.Status_Two : ParentItemStatus.Status_One, ChildItems = new List<string>() { $"Child one_{i}", $"Child two_{i}", $"Child three_{i}", $"Child four_{i}" } }); } }
internal void SetParentInfo(Student student) { foreach (ParentLog item in student.ParentsLogs) { Parent parentInfo = ParentItems.FirstOrDefault(x => x.Idx == item.ParentIdx); if (parentInfo != null) { item.Name = parentInfo.Name; item.PhoneNum = parentInfo.Mobile; item.Image = parentInfo.ProfileImage; } } }
/// <summary> /// Pres the save. /// </summary> /// <param name="dbContext">The database context.</param> /// <param name="state">The state.</param> public override void PreSaveChanges(Data.DbContext dbContext, EntityState state) { var channel = this.ContentChannel; if (state == EntityState.Deleted) { ChildItems.Clear(); ParentItems.Clear(); DeleteRelatedSlugs(dbContext); } else { AssignItemGlobalKey(dbContext); } base.PreSaveChanges(dbContext, state); }
public void ListToLevels(List <string> Values, List <int> Levels) { Element.Items.Clear(); for (int i = 0; i < Levels.Count; i++) { if (Levels[i] > 0) { TreeViewItem ParentItem = (TreeViewItem)Element.Items[Element.Items.Count - 1]; ObservableCollection <TreeViewItem> ParentItems = (ObservableCollection <TreeViewItem>)ParentItem.ItemsSource; if (ParentItems == null) { ParentItems = new ObservableCollection <TreeViewItem>(); } for (int j = 1; j < Levels[i]; j++) { ParentItem = (TreeViewItem)ParentItems[ParentItems.Count - 1]; ParentItems = (ObservableCollection <TreeViewItem>)ParentItem.ItemsSource; if (ParentItems == null) { ParentItems = new ObservableCollection <TreeViewItem>(); } } TreeViewItem SingleItem = new TreeViewItem(); SingleItem.Header = Values[i]; ParentItems.Add(SingleItem); ParentItem.ItemsSource = ParentItems; } else { TreeViewItem SingleItem = new TreeViewItem(); SingleItem.Header = Values[i]; Element.Items.Add(SingleItem); } } }
internal Parent GetParentByIdx(int idx) { if (ParentItems == null || ParentItems.Count <= 0) return null; return ParentItems.Where(x => x.Idx == idx).FirstOrDefault(); }