private void tablesTree_AfterSelect(object sender, TreeViewEventArgs e)
{
dataGridView.Rows.Clear();
if (e.Node.Tag is MetaDataTable)
{
MetaDataTable table = e.Node.Tag as MetaDataTable;
if (e.Node.Nodes.Count == 1 && e.Node.Nodes[0].Text == "Loading...")
{
e.Node.Nodes.Clear();
TreeNode[] subNodes = new TreeNode[table.Members.Count];
for (int i = 0; i < subNodes.Length; i++)
subNodes[i] = CreateTreeNode(table.Members[i]);
tablesTree.BeginUpdate();
e.Node.Nodes.AddRange(subNodes);
tablesTree.EndUpdate();
}
}
else if (e.Node.Tag is MetaDataMember)
{
currentMember = (MetaDataMember)e.Node.Tag;
propertyGrid.SelectedObject = currentMember;
SetMetaDataRow(currentMember.MetaDataRow);
}
}