要求:加载全部的订单,每个订单里面有一个或者多个产品,在列表中要展现出来,
1. xaml界面
步骤:1.这里使用的是x:bind绑定所以要引入实体类命名空间(OrderList集合中类的命名空间): xmlns:order="using:GemallApp.Core.Models"
2.
<ListView Grid.Row="2" x:Name="lvOrderList" ItemsSource="{x:Bind OrderList,Mode=OneWay}" SelectionMode="None" >
<ListView.ItemTemplate>
<DataTemplate x:DataType="order:Order">
<!--里面的ListView-->
<ListView Grid.Row="1" x:Name="lvGoodList" ItemsSource="{x:Bind GoodsList,Mode=OneWay}" ItemClick="lvGoodList_ItemClick" IsItemClickEnabled="True" SelectionMode="None">
<ListView.ItemTemplate>
<!--指定GoodsList是Goods的集合-->
<DataTemplate x:DataType="order:Goods" >
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<!--里面的ListView-->
</DataTemplate >
</ListView.ItemTemplate>
2.后台:
第一步:属性成员
/// <summary>
/// 绑定ListView的集合
/// </summary>
ObservableCollection<Order> OrderList { get; set; } = new ObservableCollection<Order>();
第二步:将返回的数据进行一一赋值给OrderList
foreach (Order item in respOrder.OrderInfo.OrderList)
{
OrderList.Add(item);//给集合赋值,不能直接给OrderList=respOrder.OrderInfo.OrderList赋值,这样在页面是显示不出来数据的
}
第三步:OrderList的数据结构:
public class OrderInfo
{
/// <summary>
///
/// </summary>
public string LastId { get; set; }
/// <summary>
/// 最外层集合
/// </summary>
public ObservableCollection<Order> OrderList { get; set; }
}
public class Order
{
/// <summary>
/// 商品集合(里面的集合)
/// </summary>
public ObservableCollection<Goods> GoodsList { get; set; }
/// <summary>
/// 订单状态+关闭状态
/// </summary>
public string OrderStatusAndClose { get; set; }
/// <summary>
/// 关闭类型
/// </summary>
public string CloseType { get; set; }
}
效果如下:
uwp小白,请多指教!!