private async void ExecuteMeasure()
{
if (Editor == null) return;
ResetEditor();
OnMeasureStarted();
Exception error = null;
Polyline polyline = null;
bool isCanceled = false;
try
{
var result = await Editor.RequestShapeAsync(DrawShape.Polyline,
new SimpleLineSymbol()
{
Color = Colors.CornflowerBlue,
Width = 4
}, new Progress<GeometryEditStatus>(OnStatusReported));
polyline = result as Polyline;
}
catch (TaskCanceledException)
{
isCanceled = true;
}
catch (Exception ex)
{
error = ex;
}
finally
{
OnMeasureCompleted(polyline, error, isCanceled);
polyline = null;
if (IsEnabled)
ExecuteMeasure();
}
}