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); } } } }