protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); if (e.OldElement != null) { var nativeMap = (MKMapView)Control; nativeMap.GetViewForAnnotation = null; nativeMap.CalloutAccessoryControlTapped -= OnCalloutAccessoryControlTapped; nativeMap.DidSelectAnnotationView -= OnDidSelectAnnotationView; nativeMap.DidDeselectAnnotationView -= OnDidDeselectAnnotationView; } if (e.NewElement != null) { FormsMap = (CitoMap)e.NewElement; NativeMap = (MKMapView)Control; FormsMap.PinsChanged += UpdatePins; NativeMap.ZoomEnabled = true; NativeMap.GetViewForAnnotation = GetViewForAnnotation; NativeMap.CalloutAccessoryControlTapped += OnCalloutAccessoryControlTapped; NativeMap.DidSelectAnnotationView += OnDidSelectAnnotationView; NativeMap.DidDeselectAnnotationView += OnDidDeselectAnnotationView; UpdatePins(); } }
protected override void OnElementChanged(ElementChangedEventArgs <Map> e) { base.OnElementChanged(e); if (e.OldElement != null) { GoogleMap.InfoWindowClick -= OnInfoWindowClick; } if (e.NewElement != null) { try { FormsMap = (CitoMap)e.NewElement; Pins = FormsMap.BindablePins; FormsMap.PinsChanged += DrawPins; Control.GetMapAsync(this); } catch (Exception exception) { // ignored } } }