在xamarin中打印xaml列表(foreach)

hwazgwia  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(151)

我有一个问题,或者更确切地说,我不知道怎么做。
考虑来自API扩展的JSON类型数据,如下所示。

DATA:[
{
OrderNo:66753,
Orders:[
{
Code:F-EN-01,
Name:Test1,
Quantity: 100,
},
{
Code:F-EN-05,
Name:Test2,
Quantity: 505,
},
...
]},
{
OrderNo:66754,
Orders:[
{
Code:F-EN-03,
Name:TestOr1,
Quantity:2000,
},
{
Code:F-EN-09,
Name:TestOr2,
Quantity: 4500
},
...
]},
...

想象一下往这边走。我想做的是通过根据OrderNo数据分组在屏幕上显示它。我附上了完整的理解图片。我可以在foreach中使用foreach,但我不知道如何在xamarin xml中使用。enter image description here感谢您的帮助,保持良好的工作。
我们可以在普通的ASP.NET MVC中使用这样的结构:

public class OrderDetail

{
   public string ProductCode {get;set;}
   public string ProductPrice {get;set;}
   public string ProductCount {get;set;}
   
}

public class Order
{
   public string orderNo {get;set;}
   public List<OrderDetail> orderDetails {get;set;}
}

List<Order> orderList=new List<Order>();

foreach (var item in orderList)
{
    <h1> item.orderNo() <h1>

foreach (var orderDetail in item.orderDetails)
{
<td> orderDetail.ProductCode() <td>
<td> orderDetail.ProductPrice() <td>
<td> orderDetail.ProductCount() <td>
}

}

我可以用xamarin在ListView中打印一个对象列表,是的,但是如果在我打印的对象中有一个带有数组的字段,我该如何打印它?

ds97pgxw

ds97pgxw1#

这就是我解决问题的方法。

<ListView x:Name="orderListView" HasUnevenRows="True" SelectionMode="None" ItemTapped="orderListView_ItemTapped">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Vertical">
                            <Frame CornerRadius="15"
                                   Margin="5,5,5,5"
                                   HasShadow="True"
                                   BackgroundColor="#FDFEFE">
                                <StackLayout Orientation="Vertical">
                                    <Label Text="{Binding OrderNumber, StringFormat='Sipariş Numarası : {0:d}'}"></Label>

                                    <StackLayout Margin="0,15,0,0" BindableLayout.ItemsSource="{Binding OrderDetails}">
                                        <BindableLayout.ItemTemplate>
                                            <DataTemplate>
                                                <StackLayout>
                                                    <Grid>
                                                        <Grid.RowDefinitions>
                                                            <RowDefinition Height="Auto"></RowDefinition>
                                                        </Grid.RowDefinitions>
                                                        <Grid.ColumnDefinitions>
                                                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                                                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                                                            <ColumnDefinition Width="*"></ColumnDefinition>
                                                        </Grid.ColumnDefinitions>

                                                        <Label FontSize="12" Grid.Column="0" Grid.Row="0" Text="{Binding ProductCode}"></Label>
                                                        <Label FontSize="12" Grid.Column="1" Grid.Row="0" Text="{Binding ProductName}"></Label>
                                                        <Label HorizontalOptions="End" FontSize="12" Grid.Column="2" Grid.Row="0" Text="{Binding Amount}"></Label>

                                                    </Grid>
                                                    <BoxView Color="Black" HeightRequest="1" HorizontalOptions="FillAndExpand"></BoxView>
                                                </StackLayout>

                                            </DataTemplate>
                                        </BindableLayout.ItemTemplate>
                                    </StackLayout>
                                </StackLayout>
                            </Frame>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

show picture
我的问题是我无法将对象中的列表打印到屏幕上。
"列出订单详细信息;在“Order”对象中,我有一个类型为“orderDetails”的字段,这是我在屏幕上打印的目标。我想要一个如图所示的屏幕。

相关问题