title: Xamarin Forms Frame not expanding with content
body: <p>I'm new to Xamarin Forms, and I've met my first challenge. I want a Frame around my Stacklayout within a Listview. When the user selects an item in the Listview I want some controls to appear. This works fine without the Frame, but the Frame does not expand when the controls appear. How can I change or get around this behavior?
  Code below.</p>
  
  <p>XAML:</p>
  
  <pre><code>&lt;ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
           xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
           xmlns:local="clr-namespace:MVVMTest"
           x:Class="MVVMTest.MainPage"&gt;
  &lt;StackLayout&gt;
      &lt;ListView HasUnevenRows="True" SelectedItem="{Binding SelectedViewItem, Mode=TwoWay}" ItemsSource="{Binding Items}" &gt;
          &lt;ListView.ItemTemplate&gt;
              &lt;DataTemplate&gt;
                  &lt;ViewCell&gt;
                      &lt;Frame BackgroundColor="White" BorderColor="Black"&gt;
                          &lt;StackLayout&gt;
                              &lt;Label Text="{Binding Name}"&gt;&lt;/Label&gt;
                              &lt;Entry Text="{Binding Details}" IsVisible="{Binding ShowDetails}"&gt;&lt;/Entry&gt;
                          &lt;/StackLayout&gt;
                      &lt;/Frame&gt;
                  &lt;/ViewCell&gt;
              &lt;/DataTemplate&gt;
          &lt;/ListView.ItemTemplate&gt;
      &lt;/ListView&gt;
  &lt;/StackLayout&gt;
  </code></pre>
  
  <p></p>
  
  <p>XAML.cs</p>
  
  <pre><code>namespace MVVMTest
  {
      public partial class MainPage : ContentPage
      {
          public MainPage()
          {
              BindingContext = new ViewModel()
              {
                  Items = new List&lt;ViewModelItem&gt;()
                  {
                      new ViewModelItem()
                      {
                          Name = "Test",
                          Details = "details"
                      },
                      new ViewModelItem()
                      {
                          Name = "Test2",
                          Details = "details2"
                      }
                  }
              };
              InitializeComponent();
          }
      }
  }
  </code></pre>
  
  <p>Model:</p>
  
  <pre><code>namespace MVVMTest
  {
      public class ViewModel : INotifyPropertyChanged
      {
          private ViewModelItem _selectedViewItem;
          private List&lt;ViewModelItem&gt; _items;
  
          public event PropertyChangedEventHandler PropertyChanged;
          void OnPropertyChanged([CallerMemberName] string propertyName = "")
          {
              PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
          }
  
          public ViewModelItem SelectedViewItem
          {
              get
              {
                  return _selectedViewItem;
              }
              set
              {
                  _selectedViewItem = value;
                  OnPropertyChanged();
                  if (value != null)
                  {
                      value.ShowDetails = !value.ShowDetails;
                      SelectedViewItem = null;
                  }
              }
          }
  
          public List&lt;ViewModelItem&gt; Items
          {
              get
              {
                  return _items;
              }
              set
              {
                  _items = value;
                  OnPropertyChanged();
              }
          }
  
          public ViewModel()
          {
  
          }
      }
  
      public class ViewModelItem : INotifyPropertyChanged
      {
          private bool _showDetails;
          private string _details;
          private string _name;
  
          public event PropertyChangedEventHandler PropertyChanged;
          void OnPropertyChanged([CallerMemberName] string propertyName = "")
          {
              PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
          }
  
          public string Name
          {
              get
              {
                  return _name;
              }
              set
              {
                  _name = value;
                  OnPropertyChanged();
              }
          }
  
          public bool ShowDetails
          {
              get
              {
                  return _showDetails;
              }
              set
              {
                  _showDetails = value;
                  OnPropertyChanged();
              }
          }
  
          public string Details
          {
              get
              {
                  return _details;
              }
              set
              {
                  _details = value;
                  OnPropertyChanged();
              }
          }
      }
  }
  </code></pre>