Pull to Refresh

If the list contains items, which may change after the initial load, it may be good idea to allow users to refresh that list. RadListView is capable of doing this by a pull-to-refresh gesture. The feature allows the data to be refreshed by swiping finger down when the content is scrolled up to the top. This will trigger an animated activity indicator which will stay visible until data is refreshed.

This feature consists of:

  • RadListView.IsPullToRefreshEnabled: a boolean property which gets or sets a statement disabling or enabling the feature. The default value of the property is false.
  • RadListView.RefreshRequested: a public event which is triggered when the pull-to-refresh gesture is triggered. The custom data refreshing logic should be implemented in its handler.
  • RadListView.EndRefresh(): a public method which must be called when the custom data refreshing logic finishes executing.


This example demonstrates how to enable the pull to refresh functionality.

1. ListView definition:

 <telerikDataControls:RadListView x:Name="listView"
                                         RefreshRequested="RefreshRequested" />

2. Namespaces:


3. Sample source for the ListView ItemsSource

listView.ItemsSource = Enumerable.Range(0, this.count);

4. And this is the method that updates the source of the list view when refresh is triggered:

private int count = 10;

private async void RefreshRequested(object sender, PullToRefreshRequestedEventArgs e)
    await Task.Delay(3000);
    listView.ItemsSource = Enumerable.Range(this.count, 10);
    this.count += 10;

This is how the refresh indicator looks like:



RadListView should not be used in a View that restricts the Height to the minimum amount of vertical space. An example is StackLayout or a Grid with <RowDefinition Height="Auto" />. This will restrict the RadListView from expanding when items are populated and prevents Pull To Refresh from working correctly.

The recommended use is to place the RadListView control in a container that expands to fill available space. For example, the RadListView in the example below is in the star-sized Grid RowDefinition.

        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />

    <!-- This RadListView is in the star-sized row and will expand properly -->
    <telerikDataControls:RadListView x:Name="EventsList" />

    <Label Text="I'm in auto-sized row" Grid.Row="1" />

See Also

In this article
Not finding the help you need?