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啊案例啊什么的,我好學習一下。

  外網的也可以。

  最后,謝謝大家啦~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM