public string GetFullPath() { LightCollection <string> paths = new LightCollection <string>(); paths.Add(_id); TreeItem <T> parent = this.Parent; while (parent != null) { paths.Add(parent.Id); parent = parent.Parent; } paths.Reverse(); string fullPath = string.Join("/", paths.GetItems()); return(fullPath); }
public LightCollection <TreeItem <T> > Find(Predicate <TreeItem <T> > match) { LightCollection <TreeItem <T> > results = new LightCollection <TreeItem <T> >(); for (int i = 0; i < _globalCollection.Count; i++) { if (match(_globalCollection[i])) { results.Add(_globalCollection[i]); } } return(results); }
public TreeItem <T> Add(string id, T value) { if (_ownerCollection.GlobalCollection.Contains(id)) { throw new Exception("key \"" + id + "\" already exist"); } TreeItem <T> treeItem = new TreeItem <T>(id, _parent, ref _ownerCollection); _ownerCollection.Global_AddItem(id, treeItem); _items.Add(id); return(treeItem); }
public virtual void Add(string key, T item) { if (_keys.Contains(key)) { throw new Exception("Key already exist"); } _keys.Add(key); int index = _items.Add(item); if (ItemAdd != null) { ItemAdd(this, new KeyedCollectionAddEventArgs(_items[index], index, _keys[index])); } }