I created an extension that listens to the CollectFeaturesTask.CollectionCompleted event, and checks if a feature meets certain requirements. In some cases, an email must be sent, including an image of the map. I have this almost working now: When I click on "Finish", the map image is created and the email is sent, but the image shows the map as it was before the last feature was added to it: The feature that was just being edited does not show.
I tried this code, but the map is only refreshed after the mapview becomes active again.
var map = MobileApplication.Current.Map;
Does anyone know how to force a refresh on the map (This is a WPF map, so I do not have the GetMapImage(), Refresh() or Invalidate() methods)?
Guessing the CollectFeaturesTask.CollectionCompleted event must fire before map control event is triggered to update the display. You could do your validation in CollectionCompleted and set a flag of true/false and then see if using say- FeatureLayer event DataChanged or maybe the map event LayersDrawingCompleted to get image and send email if validation is true.
Thanks for your suggestion, I think this should be the way to go. Unfortunately reality is tougher, and I couldn't find an event that is triggered 'at the right moment'. I ended up drawing the feature's swatch manually on top of the generated image. Since in my case they are always point features, that's not too hard.