Articles in this section
Category / Section

How to swipe item in Xamarin.Forms Accordion (SfAccordion)

1 min read

You can swipe the AccordionItem by integrating the Xamarin.Forms SwipeView in Xamarin.Forms SfAccordion.

XAML

Define the SwipeView in the AccordionItem.Header and AccordionItem.Content to swipe the items. You can also bind the Command to the SwipeItem.

<accordion:SfAccordion x:Name="accordion" BindableLayout.ItemsSource="{Binding Info}" ExpandMode="SingleOrNone">
    <BindableLayout.ItemTemplate>
        <DataTemplate>
            <accordion:AccordionItem HeaderBackgroundColor="{Binding HeaderColor}">
                <accordion:AccordionItem.Header>
                    <SwipeView BackgroundColor="Transparent">
                        <SwipeView.LeftItems>
                            <SwipeItems>
                                <SwipeItem Text="Favourite" BackgroundColor="#98acf8" Command="{Binding Path=BindingContext.FavouriteCommand, Source={x:Reference accordion}}" CommandParameter="{Binding .}"/>
                            </SwipeItems>
                        </SwipeView.LeftItems>
                        <Grid>
                            <Label TextColor="#495F6E" Text="{Binding Name}" VerticalOptions="Center" HorizontalOptions="Center" HeightRequest="50" VerticalTextAlignment="Center"/>
                        </Grid>
                    </SwipeView>
                </accordion:AccordionItem.Header>
                <accordion:AccordionItem.Content>
                    <Grid BackgroundColor="#e8e8e8" Padding="5,0,0,0">
                        <Label Text="{Binding Description}" VerticalOptions="Center"/>
                    </Grid>
                </accordion:AccordionItem.Content>
            </accordion:AccordionItem>
        </DataTemplate>
    </BindableLayout.ItemTemplate>
</accordion:SfAccordion>

C#

Change the BackgroundColor of the HeaderBackgroundColor in the command execution handler.

public class ItemInfoRepository
{
    public Command<object> FavouriteCommand { get; set; }
 
    public ItemInfoRepository() 
    {
        FavouriteCommand = new Command<object>(OnFavouriteClicked);
    }
 
    private void OnFavouriteClicked(object obj)
    {
        (obj as ItemInfo).HeaderColor = (obj as ItemInfo).HeaderColor == Color.Transparent ? Color.FromHex("#cee397") : Color.Transparent;
    }
}

View sample in GitHub

Demo image to load SwipeView in Xamarin.Forms SfAccordion

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied