簡體   English   中英

Xamarin Forms,如何使用 ListView 收藏項目

[英]Xamarin Forms, How to favorite Item using ListView

我正在制作一個應用程序,我想在列表視圖中添加一個項目,比如最喜歡的。我想知道是否有人有一個我可以使用的程序或我需要的示例。 謝謝 請幫助這個我是 Xamarin forms 的新手。

在您的列表視圖中,您可以使用Xamarin.Forms SwipeView來實現此 function。

SwipeView是一個包含內容項的容器控件,並提供通過滑動手勢顯示的上下文菜單項:

可以參考以下代碼:

  <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

請關注頁面:

VerticalListSwipeContextItemsPage.xaml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM