ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Desktop.Core.Events Namespace / ProjectWindowSelectedItemsChangedEvent Class / Subscribe Method
The delegate that is subscribed to the event ProjectWindowSelectedItemsChangedEventArgs
(optional) True indicates the delegate has a strong reference to the event, and must be unsubscribed when the subscription is no longer needed. False indicates a weak delegate reference to the event. (default value = false)
Example

In This Topic
    Subscribe Method (ProjectWindowSelectedItemsChangedEvent)
    In This Topic
    Subscribe to the ProjectWindowSelectedItemsChangedEvent
    Syntax

    Parameters

    action
    The delegate that is subscribed to the event ProjectWindowSelectedItemsChangedEventArgs
    keepSubscriberAlive
    (optional) True indicates the delegate has a strong reference to the event, and must be unsubscribed when the subscription is no longer needed. False indicates a weak delegate reference to the event. (default value = false)

    Return Value

    Example
    Geodatabase Content from Catalog selection
    // 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);
              }
            }
          }
        });
      }
    });
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    See Also