示例#1
0
        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();
            }
        }
示例#2
0
        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
                }
            }
        }