UWP ListView嵌套ListView

时间:2022-02-08 18:23:41

要求:加载全部的订单,每个订单里面有一个或者多个产品,在列表中要展现出来,

1. xaml界面

UWP  ListView嵌套ListView

步骤: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>();
 
           UWP  ListView嵌套ListView
            第二步:将返回的数据进行一一赋值给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  ListView嵌套ListView

uwp小白,请多指教!!