Xamarin.Forms ListView点击按钮刷新最新数据

  最近在研究Xamarin的东西,做到ListView遇到了一些瓶颈,像在数据庞大的情况下,该怎么针对ListView中的数据分组呢?

  基于能力有限的问题,暂时写了一个只可以实现功能的临时解决方案,毕竟,样式和易用性啊还是有点。。。

  废话不多说,直接上代码吧

  首先我写了一个简单的ListView和一个Button按钮

  

 <StackLayout>
    <ListView x:Name="listviewData">
      
    </ListView>
    <Label x:Name="lblPageCount" TextColor="White"></Label>
    <Button Clicked="Button_OnClicked" Text="Next"/>
  </StackLayout>

  后台的话,只是在构造函数中加入了默认数据

  

public List<string> StrListData { get; set; }
        public int PageIndex { get; set; } //当前页
        public int PageSize { get; set; } //显示条数
        public int PageCount { get; set; } //总页数
        public int RecordCount { get; set; } //记录的总条数

  public ListTestPage()
        {
            InitializeComponent();
            List<string> strList = new List<string>();
            for (int i = 1; i <= 100; i++)
            {
                strList.Add("Name" + i);
            }
            StrListData = strList;
            PageIndex = 0;
            PageSize = 10;
            PageCount = 100;
            this.lblPageCount.Text = (PageIndex + 1).ToString();
            List<string> strList2 = strList.GetRange(PageIndex, PageSize);
            this.listviewData.ItemsSource = strList2;
        }

  因为我只是为了写一个小例子来测试一下,所以全部都写到一块去了,在MVVM下应该也不会有什么问题吧,还没来得及测试。。

  

  public void GetListData()
        {
            PageIndex++;
            int pageStart = PageIndex * PageSize;
            int pageEnd = (PageIndex + 1) * PageSize;
            this.lblPageCount.Text = (PageIndex + 1).ToString();
            List<string> strList2 = StrListData.GetRange(0, pageEnd);
            this.listviewData.ItemsSource = strList2;
        }

        private void Button_OnClicked(object sender, EventArgs e)
        {
            GetListData();
        }

  然后这就是按钮的实现方法了。

  

  其实我就是单纯的利用了ListView的GetRange。

  最近还在研究更好的方法。

  如果吧友有更好的方法和案例可以拿给小弟来参考一下的话,希望你们可以给我留言发一下网站demo啊案例啊什么的,我好学习一下。

  外网的也可以。

  最后,谢谢大家啦~

posted @ 2016-05-05 19:31  临冰听雪丶  阅读(3087)  评论(0编辑  收藏  举报