Public NotInheritable Class Inspector Inherits ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase Implements System.Collections.Generic.IEnumerable(Of Attribute), System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged
Public NotInheritable Class Inspector Inherits ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase Implements System.Collections.Generic.IEnumerable(Of Attribute), System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged
This class is primarily used to get or set the attribute values on features or rows. Additionally it provides some meta information.
To get or set attribute values, first load a feature or row into the class then use the class properties or attribute index/name.
You can also use the Inspector class to obtain schema information about a mapMember. Use the LoadSchema(MapMember) or LoadSchemaAsync(MapMember) methods to obtain schema information.
// Adds a custom validation rule to the "Mineral" field of the specified feature layer. await QueuedTask.Run(() => { var insp = new Inspector(); insp.LoadSchema(featureLayer); var attrib = insp.Where(a => a.FieldName == "Mineral").First(); attrib.AddValidate(() => { if (attrib.CurrentValue.ToString() == "Salt") return []; else return [ArcGIS.Desktop.Editing.Attributes.Attribute.ValidationError.Create("Error", Severity.Low)]; }); });
await QueuedTask.Run(() => { // get selected feature into inspector var selectedFeatures = activeMap.GetSelection(); var insp = new Inspector(); insp.Load(selectedFeatures.ToDictionary().Keys.First(), selectedFeatures.ToDictionary().Values.First()); // read a blob field and save to a file var msw = new MemoryStream(); msw = insp["BlobField"] as MemoryStream; using (FileStream file = new(@"d:\temp\blob.jpg", FileMode.Create, FileAccess.Write)) { msw.WriteTo(file); } // read file into memory stream var msr = new MemoryStream(); using (FileStream file = new(@"d:\images\Hydrant.jpg", FileMode.Open, FileAccess.Read)) { file.CopyTo(msr); } //put the memory stream in the blob field and save to feature var op = new EditOperation() { Name = "Blob Inspector" }; insp["Blobfield"] = msr; op.Modify(insp); if (!op.IsEmpty) { var result = op.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not } });
System.Object
ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
ArcGIS.Desktop.Editing.Attributes.Inspector
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)