I would like to open the attribute table for a selected layer. I was able to create table from a feature layer and have access to it. However, I do not know how to put that into the display like right clicking on the layer and opening the attribute table.
public void create_Layer()
 {
    string shp_path = this.ComboBox_shps.Text;
    int indexNumber = 0;
   if (shp_path != null && shp_path != string.Empty)
       {
          System.Uri shp_filepath = new System.Uri(@shp_path);
          QueuedTask.Run(() =>
       {
    var shp_layer = LayerFactory.Instance.CreateLayer(shp_filepath, MapView.Active.Map, indexNumber,    shp_path.Substring(16));
    //Get the active map view.
    var mapView = MapView.Active;
    if (mapView == null)
       return Task.FromResult(false);
     else
    {
       var selectedLayer = mapView.GetSelectedLayers()[0];
 
       if (selectedLayer is ArcGIS.Desktop.Mapping.FeatureLayer)
          {
             ArcGIS.Core.Data.Table a_table = (selectedLayer as FeatureLayer).GetTable();
             int gugu = a_table.GetCount();
             MessageBox.Show(gugu.ToString()); // I can get the row count here 
          }
   //Zoom to the selected layers in the TOC
    return mapView.ZoomToAsync(selectedLayer);
       }
       });
    }
 }
Solved! Go to Solution.
Hi,
Here is a button OnClick method that opens the Attribute table for a layer:
protected override void OnClick()
    {
      var lyrs = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
      MapView.Active.SelectLayers(lyrs.ToList());
      var openTableBtnCmd = FrameworkApplication.GetPlugInWrapper("esri_editing_table_openTablePaneButton") as ICommand;
      if (openTableBtnCmd != null)
      {
        // Let ArcGIS Pro do the work for us
        if (openTableBtnCmd.CanExecute(null))
        {
          openTableBtnCmd.Execute(null);
        }
      }
    }Thanks
Uma
Hi
There are multiple ways to display the contents of your table. You can use a WPF Datagrid control to display the table.
Another option is to use the Pro SDK Table Control. Here is a sample that shows how to do that:
Thanks
Uma
Hi
I tried TableControl Sample previously. It was giving an error :
Severity Code Description Project File Line Suppression State Error Could not load file or assembly 'ArcGIS.Desktop.DataGrid.Contrib.Wpf, Version=13.1.580.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86' or one of its dependencies. The system cannot find the file specified. TableControl TableControlDockpane.xaml 77
for creating table control
<editing:TableControl AutomationProperties.AutomationId="_tableControl" x:Name="tableControl" 
 Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
 TableContent="{Binding Path=TableContent}" 
 RowContextMenu="{StaticResource MyRowContextMenu}"
 SelectedRowContextMenu="{StaticResource MyRowContextMenu}"
 >
 </editing:TableControl>
I tried also using WPF Datagrid but could not figure it out. It tells I am calling the wrong thread.
ArcGIS.Core.Data.Table a_table = (selectedLayer as FeatureLayer).GetTable();
DataGrid_A_Table.DataContext = a_table; // I cann not pass pro table to Datagrid
I will check one more time.
I even tried pressing hot keys (Ctrl + T) programmatically for selected layer but no luck either.
I could not find the DAML ref ID for that button  either
 either
I just would like to trigger to open attribute table like right clicking on the layer and click on the attribute table button.
Thanks!
Oz
Hi,
Here is a button OnClick method that opens the Attribute table for a layer:
protected override void OnClick()
    {
      var lyrs = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
      MapView.Active.SelectLayers(lyrs.ToList());
      var openTableBtnCmd = FrameworkApplication.GetPlugInWrapper("esri_editing_table_openTablePaneButton") as ICommand;
      if (openTableBtnCmd != null)
      {
        // Let ArcGIS Pro do the work for us
        if (openTableBtnCmd.CanExecute(null))
        {
          openTableBtnCmd.Execute(null);
        }
      }
    }Thanks
Uma
Thank you for the response! I am busy with something else but I will try this ASAP and come back with results.
Oz
Perfect! It works now.
Thank you for your help!
Oz

