I implemented the code given by ESRI Inc. Now I can detect and determine when to use SaveEdits for a featurelayer. But if I don't call this method, still the features are saved to the geodatabase.So again? How can I undo an edit in a decent way?My own implementation removed the feature after it was added...
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");
}
the xaml-code
<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>