title: BindableProperty setter is never called
body: <p>I have a binding in my <code>ListView</code>'s ItemTemplate,</p>
  <pre><code>&lt;ListView ItemsSource=&quot;{Binding Capsules}&quot;&gt;
      &lt;ListView.ItemTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;ViewCell&gt;
                  &lt;views:CapsuleWidgetView Model=&quot;{Binding}&quot;/&gt;
              &lt;/ViewCell&gt;
          &lt;/DataTemplate&gt;
     &lt;/ListView.ItemTemplate&gt;
  &lt;/ListView&gt;
  </code></pre>
  <p>And in my CapsuleWidgetView component, I have</p>
  <pre><code>public CapsuleWidgetViewModel ViewModel =&gt; (CapsuleWidgetViewModel)BindingContext;
  
  public CapsuleModel Model
  {
      get =&gt; (CapsuleModel)GetValue(ModelProperty);
      set =&gt; SetValue(ModelProperty, value);
  }
  
  public static readonly BindableProperty ModelProperty = BindableProperty.Create(
      nameof(Model),
      typeof(CapsuleModel),
      typeof(CapsuleWidgetView),
      propertyChanged: (bindable, value, newValue) =&gt;
      {
          var view = (CapsuleWidgetView)bindable;
          var modelValue = (CapsuleModel)newValue;
  
          view.ViewModel.Capsule = modelValue;
      });
  </code></pre>
  <p>Whenever the bound collection for my <code>ListView</code> changes, the items are regenerated as expected. However, each <code>Model</code> is always null, and the property setter is never called. Not from the <code>ModelProperty</code> propertyChanged, nor my defined setter method. I've confirmed this with the debugger and attempted logging.</p>
  <p>I originally thought my problem was from the <a href="https://stackoverflow.com/questions/53717473/">binding being null</a>, but this doesn't seem to be the case. Another test where I access the bound object's properties succeeds. Even then, the source collection will never have a null object added to it.</p>
  <p><em>However</em>, a <code>CapsuleModel</code> directly defined in Xaml works A-OK.</p>
  <pre><code>&lt;views:CapsuleWidgetView&gt;
      &lt;views:CapsuleWidgetView.Model&gt;
          &lt;models:CapsuleModel Name=&quot;Hello?&quot;/&gt;
      &lt;/views:CapsuleWidgetView.Model&gt;
  &lt;/views:CapsuleWidgetView&gt;
  </code></pre>
  <p>Referencing the properties of the model and binding them to something like <code>Label.Text</code> works, I'm sure the problem stems from my <code>BindableProperty</code> and/or <code>BindingContext</code>. Nothing seems wrong with either, though.</p>