title: How to change ViewCell items values?
body: <p>I have a code like this:</p>
  
  <pre><code>class CustomCell : ViewCell
  {
      private readonly Label _label;
  
      public static readonly BindableProperty DataProperty = BindableProperty.Create("Data", typeof(string), typeof(CustomCell), "Data");
  
      public string Data
      {
          get { return (string)GetValue(DataProperty); }
          set { SetValue(DataProperty, value); }
      }
  
      ...
  
      protected override void OnBindingContextChanged()
      {
          base.OnBindingContextChanged();
  
          if (BindingContext != null)
          {
                  _label.Text = Data;
          }
      }
  }
  </code></pre>
  
  <p>It works just fine, when I use this code to pass value to it in ListView:</p>
  
  <pre><code>&lt;customUi:CustomCell Data="{Binding Data}" /&gt;
  </code></pre>
  
  <p>However, sometimes I want to be able to change <code>Data</code> from <code>CustomCell</code> itself. When I change it simply by writing <code>this.Data = "new value";</code> the label text doesn't change. I could write simply <code>_label.Text = "new value";</code>, it works, but it just feels wrong. Also, changing <code>Data</code> and then calling <code>OnBindingContextChanged()</code> feels wrong as well.</p>
  
  <p>What is the correct way of doing it?</p>