protected override Task <bool> OnSketchCompleteAsync(ArcGIS.Core.Geometry.Geometry geometry) { //Simple check for selected layer if (MappingModule.ActiveTOC.SelectedLayers.Count == 0) { System.Windows.MessageBox.Show("Select a layer in the toc"); return(Task.FromResult(true)); } //jump to CIM thread return(QueuedTask.Run(async() => { //Get the selected layer in toc var featLayer = MappingModule.ActiveTOC.SelectedLayers[0] as FeatureLayer; //find feature oids under the sketch for the selected layer var features = await MapView.Active.HitTestAsync(geometry, CancelableProgressor.None); var featOids = features.Where(x => x.Item1 == featLayer).Select(x => x.Item2).First(); //update the attributes of those features var fi = new FeatureInspector(true); await fi.FillAsync(featLayer, featOids); await fi.Attributes.Where(a => a.FieldName == "PARCEL_ID").First().SetValueAsync(42); //create and execute the edit operation var op = new EditOperation(); op.Name = "The ultimate answer"; op.SelectModifiedFeatures = true; op.SelectNewFeatures = false; op.Modify(fi); return await op.ExecuteAsync(); })); }
protected override Task<bool> OnSketchCompleteAsync(ArcGIS.Core.Geometry.Geometry geometry) { //Simple check for selected layer if (MappingModule.ActiveTOC.SelectedLayers.Count == 0) { System.Windows.MessageBox.Show("Select a layer in the toc"); return Task.FromResult(true); } //jump to CIM thread return QueuedTask.Run(async () => { //Get the selected layer in toc var featLayer = MappingModule.ActiveTOC.SelectedLayers[0] as FeatureLayer; //find feature oids under the sketch for the selected layer var features = await MapView.Active.HitTestAsync(geometry, CancelableProgressor.None); var featOids = features.Where(x => x.Item1 == featLayer).Select(x => x.Item2).First(); //update the attributes of those features var fi = new FeatureInspector(true); await fi.FillAsync(featLayer, featOids); await fi.Attributes.Where(a => a.FieldName == "PARCEL_ID").First().SetValueAsync(42); //create and execute the edit operation var op = new EditOperation(); op.Name = "The ultimate answer"; op.SelectModifiedFeatures = true; op.SelectNewFeatures = false; op.Modify(fi); return await op.ExecuteAsync(); }); }