title: Xamarin IsVisible is not dynamically updated when binded to a getter property
body: <p>I'm trying to dynamically update an element's visibility by binding IsVisible to a getter property. However, the IsVisible does not automatically change the UI unless I refresh the page.</p>
  
  <p>The following is the code snippet:</p>
  
  <p>xaml:</p>
  
  <pre><code>&lt;StackLayout&gt;
      &lt;Picker Title="Choose..." ItemsSource="{Binding MyItemOptions}" SelectedItem="{Binding MyItem}"/&gt;
      &lt;Label Text="MyItem is Milk" IsVisible="{Binding Path=IsMilkItem}"/&gt;
  &lt;/StackLayout&gt;
  </code></pre>
  
  <p>C#:</p>
  
  <pre><code>private string _myItem;
  public string MyItem
  {
      get =&gt; _myItem;
      set
      {
          SetValue(ref _myItem, value);
      }
  }
  
  public bool IsMilkItem
  {
      get { return MyItem == "Milk"; }
  }
  
  
  
  
  public event PropertyChangedEventHandler PropertyChanged;
  
  protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
  {
      PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  }
  
  protected bool SetValue&lt;T&gt;(ref T field, T value, [CallerMemberName] string propertyName = null)
  {
      bool response = false;
      if (field == null ||
          !field.Equals(value))
      {
          field = value;
          PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
          response = true;
      }
      return response;
  }
  </code></pre>
  
  <p>The boolean property is updated in code after updating MyItem. However, the UI element  does not automatically show up until i manually re-render the page.</p>
  
  <p>I will be grateful if someone has a solution to this.</p>