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