private void PopulateSchemaRecursive(System.Windows.Forms.TreeNodeCollection nodes, IDataSourceViewSchema viewSchema, int depth, IDictionary duplicates)
 {
     if (viewSchema != null)
     {
         SchemaTreeNode node = new SchemaTreeNode(viewSchema);
         nodes.Add(node);
         SchemaTreeNode node2 = (SchemaTreeNode)duplicates[viewSchema.Name];
         if (node2 != null)
         {
             node2.Duplicate = true;
             node.Duplicate  = true;
         }
         foreach (TreeNodeBinding binding in this._bindingsListView.Items)
         {
             if (string.Compare(binding.DataMember, viewSchema.Name, StringComparison.OrdinalIgnoreCase) == 0)
             {
                 IDataSourceViewSchemaAccessor accessor = binding;
                 if ((depth == binding.Depth) || (accessor.DataSourceViewSchema == null))
                 {
                     accessor.DataSourceViewSchema = viewSchema;
                 }
             }
         }
         IDataSourceViewSchema[] children = viewSchema.GetChildren();
         if (children != null)
         {
             for (int i = 0; i < children.Length; i++)
             {
                 this.PopulateSchemaRecursive(node.Nodes, children[i], depth + 1, duplicates);
             }
         }
     }
 }
 private void PopulateSchemaRecursive(System.Windows.Forms.TreeNodeCollection nodes, IDataSourceViewSchema viewSchema, int depth, IDictionary duplicates)
 {
     if (viewSchema != null)
     {
         SchemaTreeNode node = new SchemaTreeNode(viewSchema);
         nodes.Add(node);
         SchemaTreeNode node2 = (SchemaTreeNode) duplicates[viewSchema.Name];
         if (node2 != null)
         {
             node2.Duplicate = true;
             node.Duplicate = true;
         }
         foreach (MenuItemBinding binding in this._bindingsListView.Items)
         {
             if (string.Compare(binding.DataMember, viewSchema.Name, StringComparison.OrdinalIgnoreCase) == 0)
             {
                 IDataSourceViewSchemaAccessor accessor = binding;
                 if ((depth == binding.Depth) || (accessor.DataSourceViewSchema == null))
                 {
                     accessor.DataSourceViewSchema = viewSchema;
                 }
             }
         }
         IDataSourceViewSchema[] children = viewSchema.GetChildren();
         if (children != null)
         {
             for (int i = 0; i < children.Length; i++)
             {
                 this.PopulateSchemaRecursive(node.Nodes, children[i], depth + 1, duplicates);
             }
         }
     }
 }