private bool MatchShellItem(IShellTreeItem item, string value) { foreach (var child in item.Children) { if (child.IsExpanded) { var m = MatchShellItem(child, value); if (m) { return(true); } } else if (child.Name.ContainsNoCase(value)) { return(true); } } return(false); }
private bool LocatePath(IShellTreeItem parent, string pathPart, Queue <string> partsQueue) { parent.IsExpanded = true; foreach (var item in parent.Children) { var folder = item.ShellObject as FileSystemKnownFolder; if (folder != null) { var folderName = folder.Name; if (folderName.EqualsNoCase(pathPart) || folderName.ContainsNoCase(pathPart)) { if (partsQueue.Count == 0) { item.IsSelected = true; return(true); } pathPart = partsQueue.Dequeue(); return(LocatePath(item, pathPart, partsQueue)); } } } return(false); }
public bool Filter(IShellTreeItem item) { return(Filter(item.ShellObject)); }