title: Xamarin Forms Bindable Object Value Changed Event
body: <p>I have created a custom map using Xamarin Forms Map. I want to access updated VisibleRegion when VisibleRegion is changed.</p>
  
  <h3>Custom Renderer</h3>
  
  <pre><code>protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
  {
      base.OnElementPropertyChanged(sender, e);
  
      if (Element == null)
          return;
  
      var map = (CustomMap)sender;
      if(map.VisibleRegion==null)
          return;
  
      map.OnMapRegionUpdated();
  }
  </code></pre>
  
  <h3>In Custom Control I created a bindable property</h3>
  
  <pre><code>public MapCenterPosition MapCenter { get; set; }
  public static readonly BindableProperty MapCenterProperty = BindableProperty.Create(
              nameof(MapCenter),
              typeof(MapCenterPosition),
              typeof(CustomMap),
              null);
  
  
  public void OnMapRegionUpdated()
  {
     MapCenter = new MapCenterPosition {Position = VisibleRegion.Center};
  }
  </code></pre>
  
  <h3>MapCenterPosition.cs</h3>
  
  <pre><code>public class MapCenterPosition: INotifyPropertyChanged
  {
      private Position _position;
  
      public event PropertyChangedEventHandler PropertyChanged;
  
      public void RaisePropertyChange([CallerMemberName]string propertyname = null)
      {
          PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyname));
      }
  
      public Position Position
      {
          get =&gt; _position;
          set 
          { 
              _position = value;
              RaisePropertyChange();
          }
  
      }
  }
  </code></pre>
  
  <p>Now I have the CustomMap &amp; binded it to ViewModel code. But how can I trigger some method in my ViewModel when MapCenter is updated ?</p>