创建一个带模版的用户控件 V.3

时间:2023-03-09 02:34:41
创建一个带模版的用户控件 V.3

再重构此篇《创建一个带模版的用户控件  V.2http://www.cnblogs.com/insus/p/4164149.html 让其它动态实现header,Item和Footer。

Insus.NET不想所有代码写在InstantiateIn(Control container)方法内的switch分流上。其实是想使用开发设计模式的中介者(Mediator)来拆分它。
创建一个带模版的用户控件 V.3

拆分为四个方法:
ListItemType.Header:
创建一个带模版的用户控件 V.3

ListItemType.Item:
创建一个带模版的用户控件 V.3

ListItemType.AlternatingItem:
创建一个带模版的用户控件 V.3

ListItemType.Footer:
创建一个带模版的用户控件 V.3

上面四个模板中,为了能动态列或是自定义一些程序,均对PlaceHolder容器委托DataBinding事件,Item和AlternatingItem是共用一个:
创建一个带模版的用户控件 V.3

OK,现在可以实现中介者类:
创建一个带模版的用户控件 V.3

现在就可以修改switch程序了,即是本篇第一张图片代码示例:
创建一个带模版的用户控件 V.3

运行结果:
创建一个带模版的用户控件 V.3

源代码下载:
http://download.cnblogs.com/insus/Refactoring/ref_mediator_repeater.rar