你的位置:首页 > ASP.net教程

[ASP.net教程]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啊案例啊什么的,我好学习一下。

  外网的也可以。

  最后,谢谢大家啦~