# .NET MAUI RefreshView Pull Direction

The RefreshView pull direction defines the physical direction of the pull gesture and the edge at which the indicator appears. Change the pull direction when your content scrolls horizontally or when new items appear at the bottom, for example, in a chat history.

## Set the Pull Direction

To set the pull direction, use the `PullDirection` property of type `Telerik.Maui.Controls.RefreshViewPullDirection`. The property accepts the following values:

* `TopToBottom`—The user pulls from the top edge toward the bottom. This is the default value on all platforms.
* `BottomToTop`—The user pulls from the bottom edge toward the top.
* `LeftToRight`—The user pulls from the left edge toward the right.
* `RightToLeft`—The user pulls from the right edge toward the left.

> note The `LeftToRight` and `RightToLeft` values describe physical directions. The `FlowDirection` of the layout doesn't reverse them.

![.NET MAUI RefreshView with the refresh indicator displayed at the left edge of the content while the user pulls from left to right](https://www.telerik.com/maui-ui/documentation/assets/f9fe3f9bcd8b9ec70045d8945bddeb93/refreshview-pull-direction.gif)

## Change the Pull Direction

The following example demonstrates how to change the `PullDirection` of the RefreshView.

1. Define the RefreshView in XAML:

   ```XAML
   <telerik:RadRefreshView x:Name="refreshView"
                           PullDirection="BottomToTop"
                           Refreshing="OnRefreshing">
       <VerticalStackLayout Padding="20"
                            Spacing="10"
                            BackgroundColor="#EEEEEE">
           <Label Text="PullDirection:"
                  VerticalOptions="Center" />
           <telerik:RadComboBox x:Name="pullDirectionComboBox"
                                HorizontalOptions="Start"
                                WidthRequest="200" />
           <Label x:Name="hintLabel"
                  Text="Pull in the selected direction to refresh." />
           <Label x:Name="statusLabel"
                  Text="Not refreshed yet" />
       </VerticalStackLayout>
   </telerik:RadRefreshView>
   ```

2. Add the `telerik` namespace:

   ```XAML
   xmlns:telerik="http://schemas.telerik.com/2022/xaml/maui"
   ```

3. Handle the `Refreshing` event and end the refresh when the data is loaded:

   ```C#
   private async void OnRefreshing(object sender, EventArgs e)
   {
       await Task.Delay(1500);
       this.refreshCount++;
       this.statusLabel.Text = $"Refreshed {this.refreshCount} time(s)";
       this.refreshView.IsRefreshing = false;
   }
   ```

> tip For a runnable example with the RefreshView Pull Direction scenario, see the [SDKBrowser Demo Application](https://www.telerik.com/maui-ui/documentation/demos-and-sample-apps/sdkbrowser-app) and go to the **RefreshView > Configuration** category.

## See Also

* [Transition Mode](https://www.telerik.com/maui-ui/documentation/controls/refreshview/transition-mode)
* [Thresholds](https://www.telerik.com/maui-ui/documentation/controls/refreshview/thresholds)
* [Indicator Type](https://www.telerik.com/maui-ui/documentation/controls/refreshview/indicator-type)
