Xamarin: как загрузить данные асинхронно / пагинацией? - PullRequest
0 голосов
/ 14 марта 2019

Представьте, что у меня есть некое «социальное приложение» со следующим кодом, цель которого:

1 - загрузить набор «лайков» с сервера

2- Каждое «Мне нравится» имеет ссылку на «Сообщение»

3 - Каждое «Сообщение» имеет текст, описание и изображение.

Проблема, с которой я столкнулся, заключается в том, что

1 - Я связываю свойство «Like.Post», но хочу загрузить данные «асинхронно».Посмотрите код int в «Like.Post», он содержит ожидание », и он не разрешен. Итак, каков наилучший способ сделать это?

2 - я могу иметь тысячи лайков, и яхотите "скачать" набор лайков "постепенно", есть ли какой-то список "отложенной загрузки", способный загружать / запрашивать данные с сервера постепенно? Какой-то механизм разбиения на страницы

3 - ЕстьЕсть ли способ иметь несколько страниц с REST-сервером? Как разработать это на стороне сервера и клиента?

<ListView x:Name="lvLikes" ItemsSource="{Binding Likes}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Label Text="{Binding Post.Title}" VerticalTextAlignment="Center" FontSize="Small" />
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

enum LikeType { Like, Love, LOL, Sad };

class Like
{
    public string PostRef;
    public LikeType Type;

    public Post Post
    {
        get
        {
            // HOW TO GET DATA ASYNC. HERE ?
          return await Server.GetPostAsync(PostRef);
        }
    }
}

class Post
{
    public string Title;
    public string Description;
    public string Image;
}

class MyPage
{

    async Task InitializeLikes()
    {
        lvLikes.BindingContext = await Server.GetLikes();
    }

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