private bool FindCollectionInTarget( ISelectableNode <TKey, TEntity> childNode, out ObservableCollection <ISelectableNode <TKey, TEntity> >?result) { result = null; if (childNode.ParentNode == null) { result = _obsColl; } else { if (!_allNodes.ContainsKey(childNode.ParentNode.Key)) { _logger?.Error <TKey, string>("Could not find containing node with key '{0}' in {1}", childNode.ParentNode.Key, _collName); } else { result = _allNodes[childNode.ParentNode.Key].ChildNodes; } } return(result != null); }
//Remove node from selection public void RemoveNode(ISelectableNode nodeControl) { if (HasNode(nodeControl)) { NodeControls.Remove(nodeControl); nodeControl.DeSelect(); } }
//Add node to selection public void AddNode(ISelectableNode nodeControl, bool isShowDetails = true) { if (!HasNode(nodeControl)) { NodeControls.Add(nodeControl); nodeControl.Select(isShowDetails); } }
private bool RemoveAt( ObservableCollection <ISelectableNode <TKey, TEntity> > container, ISelectableNode <TKey, TEntity> nodetoRemove) { var itemIndex = container.ToList() .FindIndex(x => EqualityComparer <TKey> .Default.Equals(x.Key, nodetoRemove.Key)); if (itemIndex < 0) { _logger?.Error <TKey, string>("Could not find node with key '{0}' in the root of {1}", nodetoRemove.Key, _collName); return(false); } container.RemoveAt(itemIndex); return(true); }
//Check if node has been selected public bool HasNode(ISelectableNode nodeControl) { return NodeControls.Contains(nodeControl); }
public abstract SelectableNode <TEntity, TKey> Create(TEntity entity, ISelectableNode <TEntity, TKey>?parentNode);
//Check if node has been selected public bool HasNode(ISelectableNode nodeControl) { return(NodeControls.Contains(nodeControl)); }