如何正确地组合ListView ContextActions和处理元素选择?我试过这个,但上下文菜单在android中不起作用。
<ListView
x:Name="WorkoutsListView"
HasUnevenRows="True"
ItemsSource="{Binding Workouts}">
<!--SelectedItem="{Binding SelectedWorkout, Mode=TwoWay}"-->
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Command="{Binding Path=BindingContext.DeleteWorkoutCommand, Source={x:Reference ContentPage}}"
CommandParameter="{Binding .}"
Text="Delete"
IsDestructive="True"/>
</ViewCell.ContextActions>
<Grid>
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding Path=BindingContext.NavigateWorkoutCommand, Source={x:Reference ContentPage}}" CommandParameter="{Binding .}"></TapGestureRecognizer>
</Grid.GestureRecognizers>
<Label VerticalOptions="Center"
Margin="15,12,10,12"
Text="{Binding Name}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
答案 0 :(得分:1)
我相信你会有更好的运气将行为附加到ListView而不是Grid。随意使用以下内容。您可能会注意到它使用var
而不是BehaviorBase<T>
。那是因为我使用Prism BehaviorBase。如果您选择使用Prism,则还可以使用内置的EventToCommandBehavior
。当然,您可以自己实现此功能。您可以从Xamarin here找到样本。
Behavior<T>