void generateRendererTask_ExecuteCompleted(object sender, GenerateRendererResultEventArgs e)
{
GenerateRendererResult rendererResult = e.GenerateRendererResult;
LayerDrawingOptionsCollection options = (MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDrawingOptions != null
? (MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDrawingOptions : new LayerDrawingOptionsCollection();
LayerDrawingOptions layerDrawingOptionsParcels = null;
foreach (LayerDrawingOptions drawOption in options)
if (drawOption.LayerID == 2)
{
layerDrawingOptionsParcels = drawOption;
drawOption.Renderer = rendererResult.Renderer;
}
if (e.UserState != null)
{
LayerDefinition layerDefinition = new LayerDefinition()
{
LayerID = 2,
Definition = e.UserState as string
};
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDefinitions =
new System.Collections.ObjectModel.ObservableCollection<LayerDefinition>() { layerDefinition };
}
else
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDefinitions = null;
if (layerDrawingOptionsParcels == null)
options.Add(new LayerDrawingOptions() { LayerID = 2, Renderer = rendererResult.Renderer });
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDrawingOptions = options;
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).Refresh();
}