c# - Winform Treeview find node by tag -
i have treeview display member possibly have duplicates, , tag not. example:
treenode node = new treenode(itemname); node.tag = itemid; //unique id item treeview1.nodes.add(node); so, when searching, know can search itemname using
treeview1.nodes.find(itemname, true); but how go searching via tag? there's no definition treeview1.nodes.where, no linq me :(
any suggestions on how search tag? :) thank you!
try this:
var result = treeview1.nodes.oftype<treenode>() .firstordefault(node=>node.tag.equals(itemid)); note: because said itemid unique, can use firstordefault search unique item. if it's not found result null.
update
to search nodes @ levels, can try using recursive method, this:
public treenode fromid(string itemid, treenode rootnode){ foreach(treenode node in rootnode.nodes){ if(node.tag.equals(itemid)) return node; treenode next = fromid(itemid, node); if(next != null) return next; } return null; } //usage treenode itemnode = null; foreach(treenode node in treeview1.nodes){ itemnode = fromid(itemid, node); if(itemnode != null) break; }
Comments
Post a Comment