private static void GetExpandedRowsRecursive(TreeView treeView, TreeViewItem item, IList <TreeViewItem> expandedRows) { expandedRows.Add(item); if (item.hasChildren && treeView.IsExpanded(item.id)) { foreach (TreeViewItem current in item.children) { TreeViewUtility.GetExpandedRowsRecursive(treeView, current, expandedRows); } } }
public static void BuildRowsUsingExpandedState(IList <TreeViewItem> rows, TreeViewItem root, TreeView treeView) { if (treeView == null) { throw new ArgumentNullException("treeView", "treeView is null"); } if (root == null) { throw new ArgumentNullException("root", "root is null"); } if (rows == null) { throw new ArgumentNullException("rows", "rows is null"); } if (root.hasChildren) { foreach (TreeViewItem current in root.children) { TreeViewUtility.GetExpandedRowsRecursive(treeView, current, rows); } } }