Parameters
- item
- The item to check.
Return Value
True if the dataset can be retrieved. False otherwise.
// subscribe to event ProjectWindowSelectedItemsChangedEvent.Subscribe(async (ProjectWindowSelectedItemsChangedEventArgs args) => { if (args.IProjectWindow.SelectionCount > 0) { // get the first selected item var selectedItem = args.IProjectWindow.SelectedItems.First(); await QueuedTask.Run(() => { // datasetType var dataType = ItemFactory.Instance.GetDatasetType(selectedItem); // get the dataset Defintion if (ItemFactory.Instance.CanGetDefinition(selectedItem)) { using (var def = ItemFactory.Instance.GetDefinition(selectedItem)) { if (def is ArcGIS.Core.Data.FeatureClassDefinition fcDef) { var oidField = fcDef.GetObjectIDField(); var shapeField = fcDef.GetShapeField(); var shapeType = fcDef.GetShapeType(); } else if (def is ArcGIS.Core.Data.Parcels.ParcelFabricDefinition pfDef) { string ver = pfDef.GetSchemaVersion(); bool enabled = pfDef.GetTopologyEnabled(); } // etc } } // get the dataset if (ItemFactory.Instance.CanGetDataset(selectedItem)) { using (var ds = ItemFactory.Instance.GetDataset(selectedItem)) { if (ds is ArcGIS.Core.Data.FeatureDataset fds) { // open featureclasses within the feature dataset // var fcPoint = fds.OpenDataset<FeatureClass>("Point"); // var fcPolyline = fds.OpenDataset<FeatureClass>("Polyline"); } else if (ds is FeatureClass fc) { var name = fc.GetName() + "_copy"; // create var featureLayerParams = new FeatureLayerCreationParams(fc) { Name = name, MapMemberIndex = 0 }; LayerFactory.Instance.CreateLayer<FeatureLayer>(featureLayerParams, MapView.Active.Map); } else if (ds is Table table) { var name = table.GetName() + "_copy"; var tableParams = new StandaloneTableCreationParams(table) { Name = name }; // create StandaloneTableFactory.Instance.CreateStandaloneTable(tableParams, MapView.Active.Map); } } } }); } });
Target Platforms: Windows 11, Windows 10