

Public NotInheritable Class OpenItemDialog Inherits ItemDialog
public sealed class OpenItemDialog : ItemDialog
{
// Variables not used in samples
OpenItemDialog selectItemDialog = new(); // in #region BrowseDialogItems
// Adds a single item to a map
OpenItemDialog addToMapDialog = new()
{
Title = "Add To Map",
InitialLocation = @"C:\Data\NewYork\Counties\Erie\Streets",
Filter = ItemFilters.Composite_AddToMap
};
}
{
OpenItemDialog addToProjectDialog = new()
{
Title = "Add To Project",
MultiSelect = true,
Filter = ItemFilters.Composite_Maps_Import
};
bool? ok = addToProjectDialog.ShowDialog();
if (ok == true)
{
IEnumerable<Item> selectedDialogItems = addToProjectDialog.Items;
foreach (Item selectedDialogItem in selectedDialogItems)
MapFactory.Instance.CreateMapFromItem(selectedDialogItem);
}
}
{
var openDlg = new OpenItemDialog
{
Title = "Select a Feature Class",
InitialLocation = @"C:\Data",
MultiSelect = false,
BrowseFilter = BrowseProjectFilter.GetFilter(ItemFilters.GeodatabaseItems_All)
};
//show the browse dialog
bool? ok = openDlg.ShowDialog();
if (!ok.HasValue || openDlg.Items.Count == 0)
{
// nothing selected, leave
}
// Note: Needs QueuedTask to run
// get the item
var item = openDlg.Items.First();
// see if the item has a dataset
if (ItemFactory.Instance.CanGetDataset(item))
{
// get it
using var ds = ItemFactory.Instance.GetDataset(item);
// access some properties
var name = ds.GetName();
var path = ds.GetPath();
// if it's a featureclass
if (ds is FeatureClass fc)
{
// create a layer
var featureLayerParams = new FeatureLayerCreationParams(fc)
{
MapMemberIndex = 0
};
var layer = LayerFactory.Instance.CreateLayer<FeatureLayer>(featureLayerParams, MapView.Active.Map);
// continue
}
}
}
{
BrowseProjectFilter portalAndLocalProjectsFilter = new();
//A filter to pick projects from the portal
//This filter will allow selection of ppkx and portal project items on the portal
portalAndLocalProjectsFilter.AddFilter(BrowseProjectFilter.GetFilter("esri_browseDialogFilters_projects_online_proprojects"));
//A filter to pick projects from the local machine
portalAndLocalProjectsFilter.AddFilter(BrowseProjectFilter.GetFilter("esri_browseDialogFilters_projects"));
//Create the OpenItemDialog and set the filter to the one we just created
var openDlg = new OpenItemDialog()
{
Title = "Select a Project",
MultiSelect = false,
BrowseFilter = portalAndLocalProjectsFilter
};
//Show the dialog
var result = openDlg.ShowDialog();
//Check if the user clicked OK and selected an item
bool? ok = openDlg.ShowDialog();
if (!ok.HasValue || openDlg.Items.Count == 0)
return; //nothing selected
var selectedItem = openDlg.Items.FirstOrDefault();
//Open the project use the OpenAsync method.
}
System.Object
ArcGIS.Desktop.Catalog.ItemDialog
ArcGIS.Desktop.Catalog.OpenItemDialog
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)