title: Filter TreeView with all nodes and childs
body: <p>I have a parent node which has a child, and this child has another child etc.. and they are all in a <code>TreeView</code></p>
  
  <p>So I create a global variable to save all my nodes as:</p>
  
  <pre><code>private TreeNodeCollection ProjectTreeView { get; set; }
  </code></pre>
  
  <p>Then I set data of the tree node into my global variable:</p>
  
  <pre><code>ProjectTreeView = this.tvProjectList.Nodes[0].Nodes;
  </code></pre>
  
  <p>And When I click a button I want to filter my TreeView, so first I clear the TreeView, then I iterate over the collection and only show the nodes that meet my condition:</p>
  
  <pre class="lang-cs prettyprint-override"><code>private void rdoIssued_Click(object sender, EventArgs e)
  {
      //blocks repainting tree till all objects loaded
      this.tvProjectList.BeginUpdate();
      this.tvProjectList.Nodes.Clear();
  
      foreach (TreeNode projectNode in ProjectTreeView)
      {
          if (bool.Parse(projectNode.Tag.ToString().Split('|')[8]) == true)
          {
              this.tvProjectList.Nodes.Add((TreeNode)projectNode.Clone());
          }
  
      }
  
      //enables redrawing tree after all objects have been added
      this.tvProjectList.EndUpdate();
  }
  </code></pre>
  
  <p>The problem is it only clone the first Node but not the children. How can I clone a node with all children?</p>