我有一个Xamarin.Forms应用程序,我在listview.After中使用一个选择器,将数据绑定到列表中,输出将有5个选择器。我在那页上有个提交按钮。当单击按钮时,我想得到选择器的5个值。我怎么能这么做?任何帮助都是非常感谢的。
我的Xaml
<StackLayout Orientation="Vertical" >
<ListView x:Name="QuestionsListView" ItemsSource="{Binding}"
HasUnevenRows="True"
IsVisible="False"
ItemTapped="QuestionsListView_ItemTapped"
CachingStrategy="RecycleElement"
SeparatorVisibility="Default"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label Text="•" FontSize="Medium" TextColor="Green" Margin="0,20,0,0"/>
<Label Text="{Binding Ques}" MaxLines="5" FontSize="Small" TextColor="#474747" Margin="0,20,0,5">
</Label>
</StackLayout>
<StackLayout Orientation="Horizontal" Margin="10,0,10,0" HorizontalOptions="FillAndExpand" >
<Picker x:Name="picker1" Title="Select answer" ItemsSource="{Binding Answers}" ItemDisplayBinding="{Binding Text}" HorizontalOptions="FillAndExpand" FontSize="Small" TextColor="Gray">
</Picker>
</StackLayout>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Button Text="Submit" BackgroundColor="#10c0d5" Clicked="evaluate_clicked" TextColor="White" HorizontalOptions="FillAndExpand" BorderRadius="7" BorderColor="#10c0d5" BorderWidth = "2" Margin="10,5,10,10"></Button>
</StackLayout>My Xaml.cs
private async void evaluate_clicked(object sender, EventArgs args)
{
//How can I get the picker values?
}

发布于 2019-04-01 07:43:06
解决方案:
添加属性SelectedItem的新绑定。
<Picker Title="Select answer" ItemsSource="{Binding Answers}" ItemDisplayBinding="{Binding Text}" HorizontalOptions="FillAndExpand" FontSize="Small" TextColor="Gray" SelectedItem="{Binding SelectItem ,Mode=OneWayToSource}">
</Picker>\在您的模型中(例如,我的模型称为数据)
public class Data
{
public string Ques { get; set; }
public string Text { get; set; }
public List<string> Answers { get; set; }
public string SelectItem { get; set; }
}在你的xaml.cs里
private void Button_Clicked(object sender, EventArgs e)
{
foreach(Data data in MySource)
{
string selectValue = data.SelectItem;
if(selectValue==null)
{
selectValue = "unSelected" ;
}
Console.WriteLine(selectValue);
}
}MySource是您的listView的itemSource
https://stackoverflow.com/questions/55448443
复制相似问题