我有一个详细信息列表(购物篮),而在每个这些详细信息中,都是另一个列表(水果)。我想显示这些详细信息,我想到的第一件事是ListView内的ListView。但是在浏览建议时,给了我this和this之类的结果,这些结果主要表明在Xamarin Forms中实现不是一个好主意。
目前,我正在使用FreshMvvM作为我的MvvM框架。至于我要显示的数据,我有一组篮子,每个篮子有几个水果。我也希望显示那些水果的图像,这些图像属于特定的篮子。请引用图片。
我想知道是否对此进行了改进,或者关于布局如何实现我的列表的任何其他想法,或者任何其他实现上述行为的方式。谢谢你。
到目前为止,我的代码:
XAML:
<ListView ItemsSource="{Binding Baskets}" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding BasketID}" />
<ImageCell
Text="{Binding FruitID}"
Detail="{Binding FruitName}"
ImageSource="{Binding ImageURL}">
</ImageCell>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
类:
public class Basket
{
public string BasketID{ get; set; }
public string BasketName{ get; set; }
}
public class Fruit
{
public string FruitID{ get; set; }
public string FruitName{ get; set; }
public string ImageURL{ get; set; }
}
最佳答案
您可以使用ListView
遍历购物篮集合,而使用诸如 ItemsControl
这样的自定义控件来遍历水果收集。
它基本上是一个自定义控件,允许您通过StackLayout
和ItemsSource
属性为ItemTemplate
添加动态子级支持。您可以按原样使用控件-除非需要在此line上在其StackLayout上将Orientation
属性设置为Horizontal
。
样本用法:
<ListView ItemsSource="{Binding Baskets}" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding BasketID}" />
<local:ItemsControl ItemsSource="{Binding Fruits}">
<local:ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageURL}" />
</DataTemplate>
</local:ItemsControl.ItemTemplate>
</local:ItemsControl>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
关于c# - Xamarin Forms-实现嵌套列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46109161/