Listview получить несколько значений ввода для проверки и отправки

Надеюсь, вы мне в этом поможете.

У меня есть опрос из API, я хочу отобразить их в ListView, но моя проблема в том, как я могу проверить каждую запись, нажав кнопку «Отправить»?

Мой код

public class SurveyList
{
    public List<QuestionList> Questions { get; set; }
}

public class QuestionList
{
    public string QuestionText { get; set; }
    public string QuestionCode { get; set; }
}

public partial class SurveyPage : ContentPage
{

    public SurveyPage()
    {
        InitializeComponent();

        var surveyListData = new List<QuestionList>
        {
            new QuestionList { QuestionText = "Question 1?", QuestionCode = "01" },
            new QuestionList { QuestionText = "Question 2?", QuestionCode = "02" }
        };

        surveyList.ItemsSource = surveyListData;
    }

    void Handle_Clicked(object sender, System.EventArgs e)
    {
        // Button Clicked Get Values Here and Do Something
    }
}

}

Мой XAML

<ListView x:Name="surveyList"
          HasUnevenRows="true"
          SeparatorVisibility="Default" 
          BackgroundColor="White">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Padding="10" BackgroundColor="Purple">
                    <StackLayout Spacing="10" VerticalOptions="Start" HorizontalOptions="FillAndExpand" BackgroundColor="Olive">
                        <Label Text="{Binding QuestionLabel}" TextColor="Navy"/>
                        <Picker x:Name="QuestionPicker">
                            <Picker.Items>
                                <x:String>Yes</x:String>
                                <x:String>No</x:String>
                            </Picker.Items>
                        </Picker>
                    </StackLayout>
                    <StackLayout Spacing="20" VerticalOptions="End" HorizontalOptions="FillAndExpand" BackgroundColor="Maroon">
                        <Button x:Name="surveyButton"
                                Text="Enviar"
                                TextColor="White"
                                BackgroundColor="{StaticResource dpGreen}"
                                Clicked="Handle_Clicked"/>
                    </StackLayout>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

С помощью этого кода я тестирую, как получить все значения от нажатой кнопки.

Не совсем то, о чем вы спрашиваете. Но если вы спрашиваете, как проверить каждое значение SurveyListData, вы можете просто выполнить Foreach и делать все, что вам нужно в цикле

Andrew 13.09.2018 20:39

хм, позвольте мне попробовать, foreach внутри метода нажатия кнопки, верно? // Невозможно получить доступ к списку из метода нажатия кнопки, какие-либо другие идеи?

Jorge 13.09.2018 20:41

@Andrew Я сделал то, что вы сказали, и получил каждое значение, теперь как мне собрать их все, чтобы отправить через JSON?

Jorge 13.09.2018 21:08

Есть много SO-вопросов о сериализации объекта в JSON. Быстрый поиск найдет много примеров. Если вам по-прежнему не удается заставить ваше решение работать, задайте отдельный вопрос, показывающий, что вы пробовали. Кроме того, теперь, когда вы решили свой исходный вопрос, добавьте сюда свой ответ, чтобы его могли увидеть все, кто ищет. Совершенно нормально ответить на свой вопрос.

Andrew 13.09.2018 21:49

Большое спасибо @Andrew

Jorge 13.09.2018 21:51

Следующая ветка: ссылка

Jorge 13.09.2018 22:45
0
6
94
1

Ответы 1

Используя Foreach, как сказал @Andrew, решите вопрос.

void Handle_Clicked(object sender, System.EventArgs e)
    {
        foreach(var getValues in survey)
        {
            getValuesOfPickers.Text = getValues.QuestionCode;
        }
    }

Не уверен, что это полностью решит, но, как сказал @Andrew, на исходный вопрос был дан ответ

Другие вопросы по теме