private void AddLayer_Click(object sender, System.EventArgs e)
{
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDrawingOptions = null;
DynamicLayerInfoCollection myDynamicLayerInfos = (MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).DynamicLayerInfos;
if (myDynamicLayerInfos == null)
myDynamicLayerInfos = (MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).CreateDynamicLayerInfosFromLayerInfos();
DynamicLayerInfo dli = new DynamicLayerInfo()
{
ID = 4,
Source = new LayerDataSource()
{
DataSource = new TableDataSource()
{
WorkspaceID = "MyDatabaseWorkspaceIDSSR2",
DataSourceName = "ss6.gdb.Lakes"
}
}
};
LayerDrawingOptions layerDrawOptions = new LayerDrawingOptions();
layerDrawOptions.LayerID = 4;
layerDrawOptions.Renderer = new SimpleRenderer()
{
Symbol = new SimpleFillSymbol()
{
Fill = new SolidColorBrush(Color.FromArgb((int)255, (int)0, (int)0, (int)255))
}
};
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).LayerDrawingOptions =
new LayerDrawingOptionsCollection() { layerDrawOptions };
myDynamicLayerInfos.Insert(0, dli);
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).DynamicLayerInfos = myDynamicLayerInfos;
(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).VisibleLayers = new int[] { 3, 4 };
// Changing VisibleLayers will refresh the layer, otherwise an explicit call to Refresh is needed.
//(MyMap.Layers["USA"] as ArcGISDynamicMapServiceLayer).Refresh();
}