public MainPage() { InitializeComponent(); Editor editorForWidget = this.MyEditorWidget.DataContext as Editor; if(editorForWidget != null) editorForWidget.EditCompleted += new EventHandler<Editor.EditEventArgs>(editorForWidget_EditCompleted); } private void editorForWidget_EditCompleted(object sender, Editor.EditEventArgs e) { foreach (var edits in e.Edits) { e.Action // check action (EditVertices, Reshape, Cut, Select,..) edits.Graphic // perform the check for graphic // if check succeeds, save the edits if (edits.Layer is FeatureLayer) (edits.Layer as FeatureLayer).SaveEdits(); } }
Editor editor = editorWidget1.DataContext as Editor; if (editor != null) { editor.EditCompleted += new EventHandler<Editor.EditEventArgs>(editor_EditCompleted); } void editor_EditCompleted(object sender, Editor.EditEventArgs e) { foreach (var edit in e.Edits) { // if(e.Action== Editor.EditAction.Save) // { FeatureLayer featurerLayer = edit.Layer as FeatureLayer; if (featurerLayer != null) { if (IsEditAllowed(edit.Graphic, featurerLayer.ID)) { featurerLayer.SaveEdits(); } featurerLayer.Update(); } // } } } private bool IsEditAllowed(Graphic graphic, string layerName) { return layerName.Equals("punten"); }
<esri:EditorWidget HorizontalAlignment="Left" Margin="391,298,0,0" Name="editorWidget1" VerticalAlignment="Top" Height="162" Width="302" AutoComplete="True" AutoSelect="True" Continuous="False" Freehand="True" GeometryServiceUrl="http://localhost/ArcGIS/rest/services/Geometry/GeometryServer" Map="{Binding ElementName=Map}" ShowAttributesOnAdd="True" /> <esri:Map x:Name="Map" Background="White" Margin="-32,-45,32,45"> <esri:ArcGISDynamicMapServiceLayer ID="BaseLayer" Url="http://localhost:80/arcgis/rest/services/DBK/MapServer" /> <esri:FeatureLayer ID="punten" Url="http://localhost/ArcGIS/rest/services/DBK/FeatureServer/0" OutFields="POST" AutoSave="False"/> <esri:FeatureLayer ID="lijnen" Url="http://localhost/ArcGIS/rest/services/DBK/FeatureServer/1" OutFields="POST" AutoSave="False"/> </esri:Map>
The new graphic must be checked if it intersects with a certain other shape. We created a webservice for this functionality. So the check is no problem. But if the check say "editing on this place is not allowed" I would like to cancel the edit.
private void TemplatePicker_Loaded(object sender, RoutedEventArgs e) { TemplatePicker picker = sender as TemplatePicker; foreach (var t in picker.Templates) { t.Editor.EditCompleted += new EventHandler<Editor.EditEventArgs>(Editor_EditCompleted); } }
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.