i am facing the problem to add a mapgrid to existing map insets created in a pagelayout at an earlier step. I can implement some code in a DLL loaded by reflection to add some operations like adding a north arrow, a legend or modifying existing elements of the pagelayout using an available interface. Up to now I am able to get the created map insets and to create the map grid but I have difficulties to "link" them together.
Here is the code I tried:
for (int i = 0; i < localMap.MapSurroundCount; i++) { IMapSurround mapSurround = localMap.MapSurround[i]; if (mapSurround is MapInset) { IMapInset mapinset = mapSurround as IMapInset; IFrameElement frameElement = graphicsContainer.FindFrame(mapinset); if (frameElement != null) { ICustomOverlayGrid mapGridCarroyage = new CustomOverlayGridClass(); ... ... setting some properties for mapGridCarroyage ... IMapFrame mapFrame = frameElement as IMapFrame; IMapGrids mapGrid = mapframe as IMapGrids; mapGrid.AddMapGrid(mapGridCarroyage); } } }
mapFrame is always null but localMap.Mapssurround[i] is returning correctly an existing MapInset and frameElement is not null.
What is going on? what am i doing wrong?