title: OnPropertyChanged is being called twice for a bindable property
body: <p>In Xamarin Forms, I created a bindable property like so:</p>
  
  <pre><code>public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create("SelectedItem", typeof(MyItem), typeof(MyGrid), default(MyItem));
  
  public MyItem SelectedItem
  {
       get { return (MyItem)GetValue(SelectedItemProperty); }
       set { SetValue(SelectedItemProperty, value); }
  }
  </code></pre>
  
  <p>Here's my constructor:</p>
  
  <pre><code>public MyView()
  {
       InitializeComponent();
  
       PropertyChanged += OnPropertyChanged;
  }
  
  protected void OnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
  {
     if (propertyChangedEventArgs.PropertyName == "SelectedItem")
     {
         // called twice
     }
  }
  </code></pre>
  
  <p>Can somebody explain why property changed event is firing <strong>twice</strong>? If I create a changed handler in the definition of the bindable property, then the handler is called <strong>once</strong>.</p>
  
  <pre><code>public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create("SelectedItem", typeof(MyItem), typeof(MyGrid), default(MyItem), null, SelectedItemChanged);
  </code></pre>
  
  <p>I have noticed the issue exists only in code-behind. If I set the property directly in XAML, property changed event fires <strong>once</strong>.</p>