Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Display a list of names based on checked boxes in other page – Xamarin Forms

I have a view with a lot of labels and checkboxes, it is basically a list of questions for the user and if the user answers yes, they check the checkbox, otherwise they don’t. I have another view that is related to this first view in which it should get and display which check boxes were checked. For example:

<Label Text="You have fever?" />
<CheckBox x:Name="fever" />

<Label Text="You have a running nose?" />
<CheckBox x:Name="running_nose" />

<Label Text="You are feeling dizzy?" />
<CheckBox x:Name="dizzy" />

And on the other page I want to display the values that were checked in a entry field. Let’s say the user checked fever and dizzy. On the other page it would display something like this:

"You marked *fever*, *dizzy*. Is that right?"

How can I do this? I know I can use data binding. But not sure how to. In my actual app, I have around 10 fields of those and I need to display on the other page the was that were marked. I was also thinking in instead of displaying an entry with these values, I would created a card for each one of the checked boxes (my app is much more complex, the symptoms are just an example).

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

you need to model your data

create a class that is something like this

public class Symptom
{
  public string Name { get; set; }
  public string Prompt { get; set; }
  public bool Selected { get; set; }
}

then create a list with data

List<Symptom> symptoms = new List<Symptom>();

symptoms.Add(new Sympton { Name = "fever", Prompt = "You have fever?" });
// repeat for others

then you can display this data in a ListView or CollectionView

<ListView x:Name="lstSymptoms">
<ListView.ItemTemplate>
    <DataTemplate>
        <ViewCell>
            <StackLayout>
                <Label Text="{Binding Prompt}" />
                <Checkbox Selected="{Binding Selected" />
            <StackLayout>
        </ViewCell>
    </DataTemplate>
</ListView.ItemTemplate>
<ListView>

then in the code behind, assign your model to the list

lstSymptoms.ItemSource = symptoms;

when the user is done selecting, you can use LINQ to create a list of just the selected symptoms, and pass that to the next page

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading