title: OnElementChanged(...) not getting the new value of property
body: <p>I have a a map that displays a route between points. This is working but now <strong>I want to pass some color values from PCL</strong>. I have a custom renderer for android and a class acting as bridge between PCL and android with bindable properties in it.
  (For the map I use the PCL implementation and extends it with the custom renderer)</p>
  
  <p>For now I got:</p>
  
  <p>(android : CustomMapRenderer)</p>
  
  <pre><code>[assembly: ExportRenderer(typeof(CustomMap), typeof(MapOverlay.Droid.CustomMapRenderer))]
  namespace MapOverlay.Droid
  {
  public class CustomMapRenderer : MapRenderer , ICustomMap
  {
      List&lt;Position&gt; routeCoordinates;
      Int32 RouteColor;
  
      protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs&lt;Map&gt; e)
      {
          base.OnElementChanged(e);
  
          if (e.OldElement != null)
          {
              // Unsubscribe
          }
  
          if (e.NewElement != null)
          {
              var formsMap = (CustomMap)e.NewElement;
              routeCoordinates = formsMap.RouteCoordinates;
              Control.GetMapAsync(this);
          }
      }
  
      protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
      {
          base.OnElementPropertyChanged(sender, e);
  
          if (this.Element == null || this.Control == null)
              return;
  
          if (e.PropertyName == "VisibleRegion")
          {
              var polylineOptions = new PolylineOptions();
              polylineOptions.InvokeColor(0x66FF0000);
  
              foreach (var position in routeCoordinates)
              {
                  polylineOptions.Add(new LatLng(position.Latitude, position.Longitude));
              }
  
              NativeMap.AddPolyline(polylineOptions);
          }
      }
  
      public void working()
      {
          Log.Debug("xxxx", "WORKING");
      }
    }
  }
  </code></pre>
  
  <p>Now the class acting as bridge from PCL to Android<br>
  (PCL : CustomMap)</p>
  
  <pre><code>namespace SomeNamespace
  {
  
  public class CustomMap : Map
  {
      public static readonly BindableProperty RouteCoordinatesProperty =
      BindableProperty.Create&lt;CustomMap, List&lt;Position&gt;&gt;(p =&gt; p.RouteCoordinates, new List&lt;Position&gt;());
  
      public static readonly BindableProperty RouteColorProperty =
      BindableProperty.Create&lt;CustomMap, int&gt;(p =&gt; p.RouteColor, 0x66FF0000);
  
      //Property used to add points to the map. Then polyline utility will draw a line beteween thoses points
      public List&lt;Position&gt; RouteCoordinates
      {
          get { return (List&lt;Position&gt;)base.GetValue(RouteCoordinatesProperty); }
          set {
              base.SetValue(RouteCoordinatesProperty, value);
          }
      }
  
      public Int32 RouteColor
      {
          get { return (Int32)base.GetValue(RouteColorProperty); }
          set { base.SetValue(RouteColorProperty, value); }
      }
  
  
      public CustomMap()
      {
          RouteCoordinates = new List&lt;Position&gt;();
      }
  
     }
  }
  </code></pre>
  
  <p>So as you can see I added an <code>Int32 RouteColor</code> variable wich should be used in the CustomMapRenderer to change the color of the displayed route.</p>
  
  <p>But when I change this value in my PCL code like so :</p>
  
  <pre><code>mCustomMap.RouteColor = 0x22AA0000;
  </code></pre>
  
  <p><strong>It triggers an OnElementPropertyChanged response but not an OnElementChanged event.</strong>
  So I can't get the changed value. I only know that it DID changed (with the OnElementPropertyChanged).</p>
  
  <p>If someone knows how to bypass this phenomena... All suggestions are welcome ;-)
  Thanks in advance !</p>