void buildingImg_tap(FloorPoisDetails poi) { if (Mymap.Layers.Contains(floorPoisDetail)) { Mymap.Layers.Remove(floorPoisDetail); floorPoisDetail.Clear(); } var over = new MapOverlay { GeoCoordinate = poi.Coordinates }; var control = new BuildingPois { txt_description = { Text = poi.Description } }; over.Content = control; var poitap = new PoiTap { poiFloor = poi.poiFloor, poiId = poi.poiid, coordinate = poi.Coordinates }; //set button data context control.btn_navigateHere.DataContext = poitap; control.btn_source.DataContext = poitap; control.btn_poiInfo.DataContext = poi; // set info visibility control.btn_poiInfo.Visibility = poi.Information.Length > 2 ? Visibility.Visible : Visibility.Collapsed; control.btn_navigateHere.Click += floorPoiNavHere_Tap; control.btn_source.Click += btn_source_Click; control.btn_poiInfo.Click += BtnPoiInfoOnClick; control.grid_details.Tap += building_pois_tap; over.PositionOrigin = new Point(0.5, 1.0); floorPoisDetail.Add(over); Mymap.Layers.Add(floorPoisDetail); Mymap.SetView(poi.Coordinates, 20, MapAnimationKind.Parabolic); }