雖然分頁控件滿天飛,因?yàn)閷?shí)在沒找到WinForm程序合用的,所以就造了一回輪子。一開始認(rèn)為這個(gè)事情比較簡(jiǎn)單,沒有思考太多就開工了。事實(shí)上也沒花多少時(shí)間就寫好了第一版,想要有的功能也都實(shí)現(xiàn)了,以為萬事大吉。。。。。??丶臉幼娱L(zhǎng)這樣:
軟件開發(fā)法則之一:如果一件事情特別順利,那么一定會(huì)有一些坑在等著你!坑的大小和順利程度成正比。
果不其然,在前幾天的業(yè)務(wù)模塊重構(gòu)時(shí)就掉分頁的坑里面了,切換每頁行數(shù)后總是加載兩次數(shù)據(jù)。問題的原因也很簡(jiǎn)單,加載數(shù)據(jù)的事件被觸發(fā)了兩次。靠,看來這里業(yè)務(wù)邏輯有大問題??!再看別的地方邏輯,也有問題?。。偤糜龅街苣?,于是,就開始一通全面梳理。怎么梳理呢?還是從需求出發(fā)。
需求一:可以設(shè)置每頁顯示行數(shù)
修改了每頁顯示行數(shù)后,需要反饋到ViewModel,好根據(jù)新的顯示行數(shù)重新加載數(shù)據(jù)。等一下!似乎有的時(shí)候也不需要刷新數(shù)據(jù)吧?譬如當(dāng)前每頁顯示20行,但總數(shù)只有10行,這個(gè)時(shí)候切換成每頁100行,它還是只能顯示10行啊。這個(gè)時(shí)候就不需要重新加載數(shù)據(jù),能省就省啊。這個(gè)時(shí)候不去刷新數(shù)據(jù),不但提高效率,體驗(yàn)也更好。
需求二:可以切換頁碼,首頁|上一頁|下一頁|末頁|到[x]頁