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); } }
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.