Как отобразить ListView внутри ListView в Xamarin.forms - PullRequest
0 голосов
/ 28 января 2020

Мои данные ответов выглядят как эти фиктивные данные:

{
    "MsgCode": null,
    "IsError": false,
    "IsPartialError": false,
    "Message": [],
    "Data": {
        "TrackUpdates": [{
                "VersionId": 3,
                "VersionNumber": "15.2",
                "PublishedDate": "2020-01-20T00:00:00.000Z",
                "UpdatesName": [{
                        "UpdateId": 4,
                        "UpdateName": "Login issue fixes"
                    },
                    {
                        "UpdateId": 3,
                        "UpdateName": "Profile added"
                    }
                ]
            },
            {
                "VersionId": 2,
                "VersionNumber": "15.1",
                "PublishedDate": "2019-12-15T00:00:00.000Z",
                "UpdatesName": [{
                        "UpdateId": 2,
                        "UpdateName": "Token related changes"
                    },
                    {
                        "UpdateId": 1,
                        "UpdateName": "Design updates"
                    }
                ]
            }
        ]

    },
    "Pagination": null
}

Как я могу отобразить это с помощью форм xamarin?

Основная проблема - показать внутренний список. Пожалуйста, проверьте это изображение, если есть проблема с форматированием. JsonOutputImage

1 Ответ

0 голосов
/ 28 января 2020

Полагаю, вы можете использовать ListView внутри Listview, как показано ниже.

<ListView x:Name="contactList" ItemsSource="{Binding PlatformsList}" SeparatorVisibility="Default"
             VerticalOptions="Center" HorizontalOptions="Center" WidthRequest="150">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <Label Text="Nested List" />
                    <ListView x:Name="contactNestedList" ItemsSource="{Binding BindingContext.PlatformsList, Source={x:Reference contactList}}" HeightRequest="300" BackgroundColor="Yellow" WidthRequest="150">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <ViewCell>
                                    <StackLayout Orientation="Horizontal">
                                        <CheckBox IsChecked="{Binding IsChecked}" VerticalOptions="Center" />
                                        <Label TextColor="Red" Margin="10,0" Text="{Binding PlatformName}" IsEnabled="{Binding IsChecked}" VerticalOptions="Center" />
                                    </StackLayout>
                                </ViewCell>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Однако использование ListView внутри ListView не рекомендуется. Если в этом случае, если ваш вложенный список - это определенный список, содержащий только фиксированный набор элементов, то вы можете использовать BindableLayout вместо вложенного списка. т.е. просто замените ListView внутри родительского ListView на BindableLayout.

Если в этом случае, если у вас есть какие-либо сомнения относительно использования BindableLayout, пожалуйста, проверьте мой блог ниже, чтобы понять больше об этом.

https://xdevlogs.com/2020/01/04/bindable-layout-xamarin-forms/

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...