private ITreeNode FindNodeByKey(ITreeNode parent, string key) { if (parent == null) { var rkn = _grid.Nodes as IKeyedNode; if ((rkn != null) && (rkn.Key == key)) return _grid.Nodes; return null; } if (!parent.HasChildren) return null; return parent .Cast<ITreeNode>() .Select(tn => new {tn, kn = tn as IKeyedNode}) .Where(t => t.kn != null && t.kn.Key == key) .Select(t => t.tn) .FirstOrDefault(); }
private ITreeNode FindNodeByKey(ITreeNode parent, string key) { if (parent == null) { var rkn = _grid.Nodes as IKeyedNode; if ((rkn != null) && (rkn.Key == key)) { return(_grid.Nodes); } return(null); } if (!parent.HasChildren) { return(null); } return (parent .Cast <ITreeNode>() .Select(tn => new { tn, kn = tn as IKeyedNode }) .Where(t => t.kn != null && t.kn.Key == key) .Select(t => t.tn) .FirstOrDefault()); }