3
votes

comment ajouter une case à cocher dans la vue de liste à l'aide de formulaires xamarin

Je veux créer une case à cocher dans la vue de liste en utilisant xaml, après avoir sélectionné la case à cocher multiple, cliquez sur le bouton pour obtenir toutes les valeurs sélectionnées. Mon code est:

<ContentPage.Content>
    <ListView  x:Name="ProductsListView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <ViewCell.View>
                        <StackLayout Spacing="0">
                            <Label Text="{Binding retail_modified_item_id}" 
                               TextColor="Blue" FontSize="13" />
                            <Label Text="{Binding name, StringFormat='Name : 
                               {0:N}'}" TextColor="black" FontSize="10"  />
                            <Label Text="{Binding retail_price, 
                               StringFormat='Price : {0:N}'}" 
                               TextColor="black" FontSize="10" />
                        </StackLayout>
                    </ViewCell.View>
                </ViewCell>                            
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</ContentPage.Content>

mon la sortie est; sortie sans case à cocher

J'ai essayé un exemple de code de https: // www .ignatiuz.com / blog / xamarin / button-check-box-with-list-item-in-xamarin-forms-listview /

mais je reçois une entrée: case à cocher introuvable

Je suis nouveau sur xamarin, veuillez donner un exemple de code ou un lien pour le faire


0 commentaires

4 Réponses :


2
votes

Vous pouvez utiliser Plugin.InputKit de Nuget.

Utilisation

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:xxx"
             xmlns:input="clr-namespace:Plugin.InputKit.Shared.Controls;assembly=Plugin.InputKit"
             x:Class="xxx.MainPage">


<ContentPage.Content>
 <ListView  x:Name="ProductsListView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <ViewCell.View>
                    <StackLayout Spacing="0">
                        <Label Text="{Binding retail_modified_item_id}" 
                           TextColor="Blue" FontSize="13" />
                        <Label Text="{Binding name, StringFormat='Name : 
                           {0:N}'}" TextColor="black" FontSize="10"  />
                        <Label Text="{Binding retail_price, 
                           StringFormat='Price : {0:N}'}" 
                           TextColor="black" FontSize="10" />
                        <input:CheckBox Text="xxx" Type="Check"/>  
                    </StackLayout>
                </ViewCell.View>
            </ViewCell>                            
        </DataTemplate>
    </ListView.ItemTemplate>
 </ListView>
</ContentPage.Content>        

</ContentPage>


1 commentaires

@AnuPriya pouvez-vous fournir l'échantillon?



1
votes

J'ai écrit un contenu sur l'implémentation de la vue de liste à sélection multiple dans les formulaires xamarin. Veuillez vérifier ceci: https: //androidwithashray.blogspot. com / 2018/03 / vue-liste-multiselecte-avec-xamarin.html

J'espère que cela vous aidera.


0 commentaires

0
votes

Si vous avez besoin de cases à cocher dans une liste, vous pouvez utiliser Xamarin.Forms.InputKi ( https://github.com/enisn/Xamarin.Forms.InputKit )

Ensuite, je le définirais comme ceci dans ViewCell d'un DataTemplate:

 <input:CheckBox Text="Hello World I'm Option 2" Type="Check"/>

Il existe également des propriétés et des événements pouvant être liés que vous pouvez utiliser en fonction de votre scénario:

CheckChanged: (Event) S'appelle lorsque la vérification est modifiée.

CheckChangedCommand: (Command) Commande pouvant être liée, exécutée lors de la vérification changé.

Clé: (int) Une clé que vous pouvez définir pour définir des cases à cocher comme ID.

Texte: (chaîne) Texte pour afficher la description

IsChecked: (booléen) Situation cochée. Fonctionne TwoWay Binding comme par défaut.

Couleur: (Couleur) Couleur du chèque sélectionné.

TextColor: (Color) Couleur du texte de description.

Type: (CheckType) Type de style coché. (Chèque, Croix, Étoile, Boîte, etc.)


0 commentaires

1
votes

Ajoutez / supprimez une valeur à la collection locale à l'aide de la méthode OnCheckChanged . J'ai utilisé de cette façon:

<ListView>
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Orientation="Horizontal">
                    <Label Text="Some item" />
                    <CheckBox 
                        IsChecked="true" 
                        CheckedChanged="OnCheckedChanged" 
                        HorizontalOptions="EndAndExpand"/>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>


1 commentaires

Je ne suis pas un grand fan de nuGet à moins qu'il n'y ait pas d'autre choix. Je sais que c'est discutable et peut-être que je me trompe, mais peu importe. Merci pour cette réponse