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啊案例啊什么的,我好学习一下。
外网的也可以。
最后,谢谢大家啦~