【问题标题】:IncrementalListView not appearing xamarin formsIncrementalListView 没有出现 xamarin 表单
【发布时间】:2018-07-11 16:34:13
【问题描述】:

我正在使用 Xamarin 表单构建应用程序,我想使用 IncrementalListView

我已经看到12 这两个实现,但似乎没有一个可以正常工作,所以我将两者混合以运行我的代码。

现在的问题是视图上没有显示任何内容。

这是我的代码:

ImovsPage.cs

public partial class ImovsPage : ContentPage
{

    public Task Initialization { get; private set; }
    public static LinkedList<Imovel> Imoveis { get; set; }

    public ImovsPage()
    {
        Initialization = InitializeAsync();
        InitializeComponent();
    }

    async Task InitializeAsync()
    {
        Imoveis = await Imovel.GetInitializedListAsync();
    }
}

ImovsPage.cs.xaml

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:plugin="clr-namespace:IncrementalListView.FormsPlugin;assembly=IncrementalListView.FormsPlugin"
    x:Class="YmoApp.ImovsPage">
    <ContentPage.Content>
        <plugin:IncrementalListView
            ItemsSource="{Binding Imoveis}"
            PreloadCount="5">

            <x:Arguments>
                <ListViewCachingStrategy>RecycleElement</ListViewCachingStrategy>
            </x:Arguments>

            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Image Source="{Binding Imagens}"/>
                        <Label Text="{Binding Valor}"/>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
            <ListView.Footer>
                <ActivityIndicator Margin="20" IsRunning="{Binding IsLoadingIncrementally}" IsVisible="{Binding IsLoadingIncrementally}"/>        
            </ListView.Footer>
        </plugin:IncrementalListView>
    </ContentPage.Content>
</ContentPage>

查看模型

public class IncrementalViewModel : INotifyPropertyChanged, ISupportIncrementalLoading
    {
        public int PageSize { get; set; } = Settings.MaxImoveis;

        public ICommand LoadMoreItemsCommand { get; set; }

        public bool IsLoadingIncrementally { get; set; }

        public bool HasMoreItems { get; set; }

        public IncrementalViewModel()
        {
            LoadMoreItemsCommand = new Command(async () => await LoadMoreItems());
        }

        public event PropertyChangedEventHandler PropertyChanged;

        async Task LoadMoreItems()
        {
            IsLoadingIncrementally = true;

            Settings.incrementPage();
            // Download data from a service, etc.
            // Add the newly download data to a collection
            foreach(Imovel imovel in await Imovel.GetInitializedListAsync()){
                ImovsPage.Imoveis.AddLast(imovel);

            }

            HasMoreItems = (ImovListRequest.Total < Settings.Page * Settings.MaxImoveis);

            IsLoadingIncrementally = false;
        }
    }

【问题讨论】:

    标签: listview xamarin xamarin.forms itemtemplate


    【解决方案1】:

    这是在github issue 上回答的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多