Xamarin表单,如何使用ListView收藏项目



我正在制作一个应用程序,我想在列表视图中添加一个项目,比如收藏夹。我想知道是否有人有一个我可以用来查看或我需要的示例的过程。谢谢请在这方面提供帮助,我是Xamarin表格的新手。

在您的列表视图中,您可以使用Xamarin.Forms SwipeView来实现此功能。

SwipeView是一个包装内容项目的容器控件,并提供通过滑动手势显示的上下文菜单项目:

您可以参考以下nng代码:

<CollectionView x:Name="collectionView"
ItemsSource="{Binding Monkeys}">
<CollectionView.ItemTemplate>
<DataTemplate>
<SwipeView>
<SwipeView.LeftItems>
<SwipeItems>
<SwipeItem Text="Favorite"
IconImageSource="favorite.png"
BackgroundColor="LightGreen"
Command="{Binding Source={x:Reference collectionView}, Path=BindingContext.FavoriteCommand}"
CommandParameter="{Binding}" />
<SwipeItem Text="Delete"
IconImageSource="delete.png"
BackgroundColor="LightPink"
Command="{Binding Source={x:Reference collectionView}, Path=BindingContext.DeleteCommand}"
CommandParameter="{Binding}" />
</SwipeItems>
</SwipeView.LeftItems>
<Grid BackgroundColor="White"
Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Grid.RowSpan="2" 
Source="{Binding ImageUrl}" 
Aspect="AspectFill"
HeightRequest="60" 
WidthRequest="60" />
<Label Grid.Column="1" 
Text="{Binding Name}" 
FontAttributes="Bold" />
<Label Grid.Row="1"
Grid.Column="1" 
Text="{Binding Location}"
FontAttributes="Italic" 
VerticalOptions="End" />
</Grid>
</SwipeView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>

MonkeysViewModel.cs中的关键代码是:

public ICommand FavoriteCommand => new Command<Monkey>(FavoriteMonkey);
void FavoriteMonkey(Monkey monkey)
{
monkey.IsFavorite = !monkey.IsFavorite;
}

注意:

虽然它在CollectionView中使用,但在listView中的用法类似。

您可以在此处获取完整样本:https://github.com/xamarin/xamarin-forms-samples/tree/main/UserInterface/CollectionViewDemos

请关注页面:

垂直列表SwipeContextItemsPage.xaml.

最新更新