private bool FindAndRemoveItem(TreeFolder item, ObservableCollection<TreeFolder> subFolders) { foreach (TreeFolder treeFolder in subFolders) { if (treeFolder == item) { treeFolder.Title = "[~Removed]"; subFolders.Remove(item); return true; } if (FindAndRemoveItem(treeFolder, treeFolder.SubFolders)) return true; } return false; }
public void RemoveFolder(TreeFolder item) { if (item == null) return; if (item.SubFolders.Count > 0) return; if (item.Data != null) { _treeService.TreeDatas.Remove(item.Data); _treeService.SubmitChanges(); item.Title = "[~Removed]"; // Om Titeln innehåller denna text så kommer Ui:t att dölja raden i treeview. // Dett är en workorund för att inte hel treeviewn uppdtareas när subfolders raderas. // I TreeViewPage.xaml triggas en GotoStateAction när titeln ändras till [~Removed] foreach (TreeFolder treeFolder in TreeFolders) { if (treeFolder == item) { treeFolder.Title = "[~Removed]"; TreeFolders.Remove(item); return; } if (FindAndRemoveItem(item, treeFolder.SubFolders)) return; } } }
public void AddFolder(TreeFolder parent) { if (parent == null) _treefolders.Add(AddNewSubFolder(null)); else { parent.SubFolders.Add(AddNewSubFolder(parent.Id)); parent.IsExpanded = true; } }
private TreeFolder AddNewSubFolder(Guid? pId) { var newitem = new TreeFolder { Title = "[New Item]", Id = Guid.NewGuid(), Parent = pId }; var treedata = new TreeData { Title = newitem.Title, Id = newitem.Id, Parent = newitem.Parent }; _treeService.TreeDatas.Add(treedata); _treeService.SubmitChanges(); newitem.Data = treedata; return newitem; }
private TreeFolder TreeFolder(TreeData t) { TreeFolder newitem; return newitem = new TreeFolder { Title = t.Title, Text = t.Text, Id = t.Id, Parent = t.Parent, IsExpanded = t.isExpanded, SubFolders = AddChilds(t.ChildNodes), Data = t }; return newitem; }