/// <summary> /// Opens a dialog so the user can select a dataset containing the new data to be transformed. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void inputDatasetButton_Click(object sender, EventArgs e) { try { IGxObjectFilter datasetFilter = new GxFilterFeatureDatasetsClass(); IGxDialog dlg = new GxDialogClass(); IGxObjectFilterCollection filters = (IGxObjectFilterCollection)dlg; filters.AddFilter(datasetFilter, true); dlg.Title = "Select the feature dataset containing the data to be transformed"; dlg.ButtonCaption = "Select"; IEnumGxObject objects = null; if (dlg.DoModalOpen(0, out objects)) { IGxObject obj = objects.Next(); _inputDatasetName = (IFeatureDatasetName2)obj.InternalObjectName; inputDatasetTextBox.Text = obj.Parent.Name + "/" + obj.Name; List <IDatasetName> fcNames = EsriUtilities.GetFeatureClassNames(esriGeometryType.esriGeometryPoint, _inputDatasetName); fcNames.Sort(_nameComparer); controlPointsComboBox.DataSource = fcNames; controlPointsComboBox.DisplayMember = "Name"; EnableSave(); } } catch (Exception ex) { ShowError(ex.Message); } }
/// <summary> /// 获取要素数据集中所有拓扑的名称 /// </summary> /// <param name="featureDataset"></param> /// <returns></returns> public static List <string> GetAllTopoNames(this IFeatureDataset featureDataset) { List <string> result = new List <string>(); IFeatureDatasetName2 featureDatasetName = (IFeatureDatasetName2)featureDataset.FullName; IEnumDatasetName enumDsName = featureDatasetName.TopologyNames; IDatasetName dsName; while ((dsName = enumDsName.Next()) != null) { result.Add(dsName.Name); } return(result); }