IEnumerable <TreeViewItemViewModel> FindSelected(TreeViewItemViewModel node) { if (node != null) { if (node.IsSelected) { yield return(node); } if (node.Children != null) { foreach (var child in node.Children) { foreach (var selected in this.FindSelected(child)) { yield return(selected); } } } } }
IEnumerable <TreeViewItemViewModel> FindChecked(TreeViewItemViewModel node) { if (node != null && node.Children != null) { if (node.Children.Count == 0) { if (node.IsChecked.HasValue && node.IsChecked.Value) { yield return(node); } } else { foreach (var child in node.Children) { foreach (var selected in this.FindChecked(child)) { yield return(selected); } } } } }