根据其他页面中的复选框显示名称列表 - Xamarin Forms
Display a list of names based on checked boxes in other page - Xamarin Forms
我有一个带有很多标签和复选框的视图,它基本上是用户的问题列表,如果用户回答是,他们会选中复选框,否则他们不会。我有另一个与第一个视图相关的视图,它应该获取并显示选中了哪些复选框。例如:
<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" />
在另一页上,我想显示在输入字段中选中的值。假设用户检查发烧和头晕。在另一页上它会显示如下内容:
"You marked *fever*, *dizzy*. Is that right?"
我该怎么做?我知道我可以使用数据绑定。但不确定如何。在我的实际应用程序中,我有大约 10 个字段,我需要在另一页上显示已标记的字段。我也在考虑不显示具有这些值的条目,而是为每个选中的框创建一张卡片(我的应用程序要复杂得多,症状只是一个例子)。
您需要对数据建模
创建一个像这样的class
public class Symptom
{
public string Name { get; set; }
public string Prompt { get; set; }
public bool Selected { get; set; }
}
然后用数据创建一个列表
List<Symptom> symptoms = new List<Symptom>();
symptoms.Add(new Sympton { Name = "fever", Prompt = "You have fever?" });
// repeat for others
然后您可以在 ListView 或 CollectionView 中显示此数据
<ListView x:Name="lstSymptoms">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Prompt}" />
<Checkbox Selected="{Binding Selected" />
<StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView>
然后在后面的代码中,将您的模型分配给列表
lstSymptoms.ItemSource = symptoms;
当用户完成选择后,您可以使用 LINQ 创建仅包含所选症状的列表,并将其传递到下一页
我有一个带有很多标签和复选框的视图,它基本上是用户的问题列表,如果用户回答是,他们会选中复选框,否则他们不会。我有另一个与第一个视图相关的视图,它应该获取并显示选中了哪些复选框。例如:
<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" />
在另一页上,我想显示在输入字段中选中的值。假设用户检查发烧和头晕。在另一页上它会显示如下内容:
"You marked *fever*, *dizzy*. Is that right?"
我该怎么做?我知道我可以使用数据绑定。但不确定如何。在我的实际应用程序中,我有大约 10 个字段,我需要在另一页上显示已标记的字段。我也在考虑不显示具有这些值的条目,而是为每个选中的框创建一张卡片(我的应用程序要复杂得多,症状只是一个例子)。
您需要对数据建模
创建一个像这样的class
public class Symptom
{
public string Name { get; set; }
public string Prompt { get; set; }
public bool Selected { get; set; }
}
然后用数据创建一个列表
List<Symptom> symptoms = new List<Symptom>();
symptoms.Add(new Sympton { Name = "fever", Prompt = "You have fever?" });
// repeat for others
然后您可以在 ListView 或 CollectionView 中显示此数据
<ListView x:Name="lstSymptoms">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Prompt}" />
<Checkbox Selected="{Binding Selected" />
<StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView>
然后在后面的代码中,将您的模型分配给列表
lstSymptoms.ItemSource = symptoms;
当用户完成选择后,您可以使用 LINQ 创建仅包含所选症状的列表,并将其传递到下一页