J'ai xamarin.forms app qui contient une liste de réception. Ce que j'essaie d'implémenter est multi pour sélectionner la liste de liste et faire une action. Actuellement, la liste ListView contient un événement à tartiner d'objet, qui ouvrira une autre page. Comment puis-je implémenter la sélection multiple Sélectionnez la liste de sélection lorsque l'utilisateur affiche la liste d'affichage de la liste, comme dans toutes les autres applications (par exemple; des messages, WhatsApp, etc.). Mon plan rugueux est, si vous avez atteint l'événement de presse à long terme, je montrerai la case à cocher à l'intérieur de ListView.
Donc, quelle sera la meilleure approche de Multiselect ListView? Est-il possible de l'activer avec la touche contenant la cellule de l'élément ListView? P>
Toute aide est appréciée. P>
ma liste de liste avec effet de presse long. Strong> p> <ListView x:Name="TimesheetListView" ItemsSource="{Binding} "
HasUnevenRows="True"
HeightRequest="{Binding Path=Height, Source={x:Reference ListLayout}}"
CachingStrategy="RecycleElement"
SeparatorVisibility="None"
BackgroundColor="Transparent"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Frame BorderColor="LightGray"
CornerRadius="5" BackgroundColor="White"
Margin="2" Padding="5" HasShadow="False"
Text="Long Press Me!" effects:LongPressedEffect.Command="{Binding ShowAlertCommand}"
effects:LongPressedEffect.CommandParameter="{Binding .}"
>
<Frame.Effects>
<effects:LongPressedEffect />
</Frame.Effects>
<Label Text="Lognpress" FontSize="Micro" TextColor="Black" VerticalOptions="Center">
</Label>
</Frame>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
3 Réponses :
Vous ne pouvez pas l'atteindre directement via Portable mais capable de faire via une plate-forme spécifique.
Remarque: Strong> Pour une sélection multiple, vous pouvez créer une propriété dans la classe modèle comme Isselected, puis basé sur la catégorie modèle. Sur cette propriété, vous effectuez la case à cocher checkbox et décochez la case. p> Créer CustomVoir pour rendre votre modèle dans la liste de liste comme ci-dessous, exposer une commande pour la manipulation de l'opération de maintien dans MVVM. Et ainsi que l'interface pour élever l'action de maintien de la rendu. P> et xaml partie de la vue personnalisée comme ci-dessous, p> La partie du rendu de de même que vous l'atteindrez pour iOS fort>. P>. p>
Merci Ganesan pour la réponse. +1. Je l'ai fait une autre façon
Pour obtenir un événement de presse longue pour tout contrôle, créé une classe dans le code partagé nommé CustomView fort> in Android,
Créé une classe nommée dans la classe créée iOS nommée Inside My ViewCell of Listview, P> void Handle_LongPressEvent(object sender, System.EventArgs e)
{
//handle long press event here
}
Vous pouvez ajouter BoxView dans votre mise en page. Lorsque cliqué, changez la couleur comme s'il est sélectionné (vous pouvez également modifier directement la couleur de votre présentation, vous n'avez pas besoin d'ajouter BoxView). Puis manipulez toutes les barres sélectionnées avec un bouton. P>
Utilisez CollectionView - Docs.MicRosoft .COM / FR-US / XAMARIN / XAMARIN-FORMES / UTILISATE-INTERFAC E / ...
@Jason Bonjour, merci pour les informations sur la vue de la collection. Comment puis-je faire la sélection lorsque l'utilisateur clique-t-il et maintenez la cellule de vue?
Si vous ne souhaitez pas utiliser Renderer personnalisé pour atteindre l'événement de clic long, veuillez supprimer cette fonctionnalité. GITUB.COM/XAMARIN/XAMARIN.FORMS/issues/3480 , vous pouvez aussi essayer cette solution de contexte alexdunn.org/2017/12/27/...
@ LEONLU-MSFT J'ai utilisé Xamarin.Forms Effet de presse longue de Alexdunn.org. Mais je n'utilise pas mvvm. Je n'aurais pas eu l'événement cliqué sur le backend CS. Pouvez-vous m'aider?