发布:2021/10/20 13:36:40作者:管理员 来源:本站 浏览次数:1001
最近在研究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啊案例啊什么的,我好学习一下。
外网的也可以。
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4