title: Refresh GridView in xamarin.forms xaml
body: <p>I have a GridView and each tile contains user-specific details hence I would like a refresh on this view if the user's details had to change while using the app. I've tried the following approach by adding a refresh for one of my tiles but this doesn't work. Is there any other way to achieve this for the whole gridView?</p>
  
  <p><strong>Xaml</strong></p>
  
  <pre><code>&lt;Grid x:Name="cardBalance" &gt;
              &lt;Image Source="GiftCard.jpg" HorizontalOptions="Fill" VerticalOptions="Fill" Aspect="AspectFill" Grid.Row="0" Grid.Column="0" x:Name="CardImage"/&gt;
              &lt;Image Source="store2.jpg" HorizontalOptions="Fill" VerticalOptions="Fill" Aspect="AspectFill" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"/&gt;
              &lt;Image Source="GridTrans.jpg" HorizontalOptions="Fill" VerticalOptions="Fill" Aspect="AspectFill" Grid.Row="0" Grid.Column="1" /&gt;
              &lt;Image Source="ProfileBg2.JPG" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Aspect="AspectFill" Grid.Row="2" Grid.Column="0" /&gt;
              &lt;Image Source="gridSettings.JPG" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Aspect="AspectFill" Grid.Row="2" Grid.Column="1" /&gt;
  
          &lt;ScrollView Grid.Row="0" Grid.Column="0"&gt;
              &lt;ListView x:Name="CardBalance" HasUnevenRows="True" Grid.Row="0" Grid.Column="0" VerticalOptions="Fill" IsPullToRefreshEnabled="True" Refreshing="CardBalance_Refreshing"&gt;
                  &lt;ListView.ItemTemplate&gt;
                      &lt;DataTemplate&gt;
                          &lt;ViewCell&gt;
                              &lt;StackLayout Orientation="Vertical"
                                   HorizontalOptions="FillAndExpand"
                                   VerticalOptions="FillAndExpand"
                                   x:Name="Layout"&gt;
                                  &lt;Frame&gt;
  
                                      &lt;StackLayout Orientation="Horizontal"  HorizontalOptions="FillAndExpand"&gt;
                                          &lt;StackLayout Orientation="Vertical"  HorizontalOptions="FillAndExpand"&gt;
                                              &lt;Label Text="Card Balance:" TextColor="Black"/&gt;
                                              &lt;Label Text="{Binding Balance}" TextColor="Black"/&gt;
                                          &lt;/StackLayout&gt;
                                          &lt;StackLayout Orientation="Vertical"  HorizontalOptions="EndAndExpand"&gt;
                                              &lt;Image Source="{Binding CustomerLogo}" HeightRequest="60" WidthRequest="60"&gt;&lt;/Image&gt;
                                          &lt;/StackLayout&gt;
                                      &lt;/StackLayout&gt;
                                  &lt;/Frame&gt;
                              &lt;/StackLayout&gt;
                          &lt;/ViewCell&gt;
                      &lt;/DataTemplate&gt;
                  &lt;/ListView.ItemTemplate&gt;
              &lt;/ListView&gt;
          &lt;/ScrollView&gt;
  
          &lt;Label Text=" Tap to view detail" TextColor="Gainsboro" FontSize="14"  FontAttributes="Bold" HorizontalTextAlignment="Start" VerticalTextAlignment="End" Grid.Row="0" Grid.Column="0" x:Name="CardTile"/&gt;
          &lt;Label Text=" Tap to view all card balances" TextColor="#64676b" FontAttributes="Bold" HorizontalTextAlignment="Start" VerticalTextAlignment="End" Grid.Row="0" Grid.Column="0" x:Name="MultipleCards"/&gt;
  
  
          &lt;Label Text=" Transactions" TextColor="White" FontAttributes="Bold" HorizontalTextAlignment="Start" VerticalTextAlignment="End" Grid.Row="0" Grid.Column="1"  x:Name="TransactionTile"/&gt;
          &lt;Label Text=" Promotions" TextColor="White" FontSize="30" FontAttributes="Bold" HorizontalTextAlignment="Start" VerticalTextAlignment="End" Grid.Row="1" Grid.Column="0"  Grid.ColumnSpan="2"  x:Name="PromoTile"/&gt;
          &lt;Label Text=" My Profile" TextColor="White" FontAttributes="Bold" HorizontalTextAlignment="Start" VerticalTextAlignment="End" Grid.Row="2" Grid.Column="0"  x:Name="ProfileTile" /&gt;
          &lt;Label Text=" Settings" TextColor="White" FontAttributes="Bold" HorizontalTextAlignment="Start" VerticalTextAlignment="End" Grid.Row="2" Grid.Column="1"   x:Name="SettingsTile"/&gt;
  
          &lt;Grid.RowDefinitions&gt;
              &lt;RowDefinition Height="*" /&gt;
              &lt;RowDefinition Height="2*" /&gt;
              &lt;RowDefinition Height="*" /&gt;
          &lt;/Grid.RowDefinitions&gt;
          &lt;Grid.ColumnDefinitions&gt;
              &lt;ColumnDefinition Width="2*" /&gt;
              &lt;ColumnDefinition Width="1*" /&gt;
          &lt;/Grid.ColumnDefinitions&gt;
      &lt;/Grid&gt;
  </code></pre>
  
  <p>Xaml.cs</p>
  
  <pre><code>public async void LoadCards()
      {
          try
          {
              List&lt;Requests.Cards&gt; cd = new List&lt;Requests.Cards&gt;();
              var content = "";
              HttpClient client = new HttpClient();
              var RestUrl = Settings.RestUrl + "/api/Customer/GetCustomerCards?CustomerID=" + Helpers.Settings.storecustID;
              client.BaseAddress = new Uri(RestUrl);
              client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
              client.DefaultRequestHeaders.Add("X-Giftworx-App", Helpers.Settings.Usertoken);
              HttpResponseMessage response = await client.GetAsync(RestUrl);
  
              content = await response.Content.ReadAsStringAsync();
  
              var Items = JsonConvert.DeserializeObject&lt;List&lt;Requests.Cards&gt;&gt;(content);
  
              CardBalance.ItemsSource = Items;
              TapGestureRecognizer cardsLabel = new TapGestureRecognizer();
                  cardsLabel.Tapped += (sender, e) =&gt;
                  {
                      Navigation.PushAsync(new Cards());
  
                  };
  
                  CardTile.GestureRecognizers.Add(cardsLabel);         
          }
          catch (Exception ex)
          {
              string exception = ex.Message;
          }
      }
  
      private void CardBalance_Refreshing(object sender, EventArgs e)
      {
          LoadCards();
          CardBalance.IsRefreshing = false;          
      }
  </code></pre>