再重構(gòu)此篇《創(chuàng)建一個(gè)帶模版的用戶控件 V.2》http://m.survivalescaperooms.com/insus/p/4164149.html讓其它動(dòng)態(tài)實(shí)現(xiàn)header,Item和Footer。
Insus.NET不想所有代碼寫在InstantiateIn(Control container)方法內(nèi)的switch分流上。其實(shí)是想使用開發(fā)設(shè)計(jì)模式的中介者(Mediator)來(lái)拆分它。
拆分為四個(gè)方法:ListItemType.Header:
ListItemType.Item:
ListItemType.AlternatingItem:
ListItemType.Footer:
上面四個(gè)模板中,為了能動(dòng)態(tài)列或是自定義一些程序,均對(duì)PlaceHolder容器委托DataBinding事件,Item和AlternatingItem是共用一個(gè):
OK,現(xiàn)在可以實(shí)現(xiàn)中介者類:
現(xiàn)在就可以修改switch程序了,即是本篇第一張圖片代碼示例:
運(yùn)行結(jié)果:
源代碼下載:http://download.VEVb.com/insus/Refactoring/ref_mediator_repeater.rar
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注