private void lvDataSourceObjects_SelectedIndexChanged(object sender, System.EventArgs e) { CheckForInputSufficiency(); if (lvDataSourceObjects.SelectedItems.Count <= 0) { return; } if (selectedDataSource is IDbDriver) { IDbDriver dbDriver = selectedDataSource as IDbDriver; DataTable dt = dbDriver.GetTopTwoTable(lvDataSourceObjects.SelectedItems[0].Text); List <string> childCols = new List <string>(); foreach (DataColumn dc in dt.Columns) { childCols.Add(dc.ColumnName); } childCols.Sort(); cmbChildKey.DataSource = childCols; SelectedItemType = Dialogs.SelectedItemType.Table; } else if (selectedDataSource is Project) { Project project = selectedDataSource as Project; string viewName = lvDataSourceObjects.SelectedItems[0].Text; List <string> childCols = new List <string>(); if (project.Views.Contains(viewName) && lvDataSourceObjects.SelectedItems[0].Group.ToString().ToLowerInvariant().Equals("epi info forms")) { foreach (Epi.Fields.Field field in project.Views[viewName].Fields.DataFields) { childCols.Add(field.Name); } childCols.Sort(); cmbChildKey.DataSource = childCols; SelectedItemType = Dialogs.SelectedItemType.Form; } else if (lvDataSourceObjects.SelectedItems[0].Group.ToString().ToLowerInvariant().Equals("tables")) { IDbDriver dbDriver = project.CollectedData.GetDbDriver(); DataTable dt = dbDriver.GetTopTwoTable(lvDataSourceObjects.SelectedItems[0].Text); foreach (DataColumn dc in dt.Columns) { childCols.Add(dc.ColumnName); } childCols.Sort(); cmbChildKey.DataSource = childCols; SelectedItemType = Dialogs.SelectedItemType.Table; } } }