title: IsVisible Binding is not working in Xamarin.Forms
body: <p>I a have typical label that I want to control its visibility by a property that is null/empty or not.</p>
  
  <p>I've put breakpoints and also log and it seems that return value is true but still it does not show the element. When I scroll my listview then they are visible but sometimes still not.. There are several items, sometimes some of them are visible sometimes not.. it is changable..<br>
  here my converter</p>
  
  <pre><code>public class TestBooleanConverter : IValueConverter
  {
  
      public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
      {
          var result=  value != null &amp;&amp; !value.ToString().Equals("");
          Console.WriteLine("Result: " +result);
          return result;
      }
  
      public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
      {
          throw new NotImplementedException();
      }
  }
  </code></pre>
  
  <p>and the property </p>
  
  <pre><code>    public string LocalizedReadoutDescription
      {
          get
          {
              Console.WriteLine("Description: " + dataItem.Description);
              string localizedDescription = null;
              if (!string.IsNullOrEmpty(this.dataItem.Description))
              {
                  string[] descriptionKeyParts = this.dataItem.Description.Split(';');
                  localizedDescription = descriptionKeyParts[0];
                  if (!string.IsNullOrEmpty(localizedDescription))
                  {
                      localizedDescription = 
                     this.getLocalizedString(Constants.Localization.LogicalItemDescriptionFmt, 
                       localizedDescription);
                  }
              }
  
              return localizedDescription;
          }
      }
  </code></pre>
  
  <p>and Xaml Code</p>
  
  <pre><code>&lt;ContentView.Resources&gt;
    &lt;converters:TestBooleanConverter x:Key="nullToBoolConverter"/&gt;
     .....
  &lt;/ContentView.Resources&gt;
  
      .....
  
  &lt;StackLayout Orientation="Horizontal" Margin="4,2" Grid.Column="1"  VerticalOptions="StartAndExpand" 
   HorizontalOptions="FillAndExpand" Spacing="0" BackgroundColor="White"&gt;
         &lt;StackLayout.GestureRecognizers&gt;
            &lt;TapGestureRecognizer Tapped="Help_Tapped" CommandParameter="{Binding}"/&gt;
         &lt;/StackLayout.GestureRecognizers&gt;
         &lt;Label x:Name="HelpLabel" Style="{StaticResource InfoIconLabel}" Text="{x:Static resx:UI.Icon_Info}" Margin="0" 
          HorizontalOptions="EndAndExpand" VerticalOptions="Start" IsVisible="{Binding LocalizedReadoutDescription,
         Converter={StaticResource nullToBoolConverter}}" FontSize="Micro" LineBreakMode="NoWrap"/&gt;
   &lt;/StackLayout&gt;
  </code></pre>
  
  <p>I feel that, even it returns true, but it uses the previous rows value. but only this part does not update. label names, values are updated, but only some items' visibility is not updating.. </p>
  
  <p>where is my mistake?</p>
  
  <p><strong>Update:</strong></p>
  
  <p>I've created an event for property change of the label that I want to control its visibility. I can see that, the IsVisible is always true but on the GUI, only one item is visible.. but when I scroll, several are visible, and when I scroll more then all items are visible as it must be</p>
  
  <pre><code>    private void HelpLabel_OnPropertyChanged(object sender, PropertyChangedEventArgs e)
      {
          if (e.PropertyName.Equals("IsVisible"))
          { 
             // I check =&gt; ((Xamarin.Forms.Label)sender).IsVisible 
             //always true
         }
      }
  </code></pre>