public async Task <TreeView> OnSelectionChanged(TreeView treeView, string id) { _ids.Clear(); var dataTable = await _userAccessService.GetUserLevelMenuAsync(id); treeView.SetCheckBoxStatusForAllNodes(false); foreach (DataRow row in dataTable.Rows) { var title = row.ItemArray[1].ToString(); bool isFound = false; foreach (TreeNode node in treeView.Nodes) { if (node.Text == title) { node.Checked = true; AddId(node.Name, true); isFound = true; break; } if (node.Nodes.Count > 0) { foreach (TreeNode childNode in node.Nodes) { if (childNode.Text == title) { childNode.Checked = true; AddId(childNode.Name, true); isFound = true; break; } } if (isFound) { break; } } } if (isFound) { isFound = false; continue; } } return(treeView); }