[导入]Composite UI Application Blocks 点滴(一)
来源:互联网 发布:淘宝买点卡订单被关闭 编辑:程序博客网 时间:2024/05/19 12:12
Composite UI Application Blocks 点滴(一)
前段时间学习了一下CAB,在正式的运用的时候还是出现了一些问题。在这里记录一下,供大家参考。
(1)SmartPart加载问题
都怪我没有看清E文的说明,在labs的代码中相应的地方作了说明——如果加载的窗体上有SmartPartHolder的话,并且要在主窗体加载的时候显示相应的SmartPart,应在WorkItem 的Run方法中,在Show出主窗体之前应该,先Creat Smartpart。代码如下:
- public void Run(IWorkspace workspace)
- {
- //先Create 相应的SmartPart
- Create<CustomerQueueView>("CustomerList");
- mainView = Create<BankTellerMainView>();
- //再Show主窗体
- workspace.Show(mainView);
- }
(2)在 State 中存放数据
State中就像Asp.net中的Session一样好用,并且只在WorkItem的范围中有效。但是使用的方式有点不同。
- //在workItem的类中这么写是可以的。
- public MedicalCase PatientMedicalCase
- {
- get
- {
- return (MedicalCase)State["patientMedicalCase"];
- }
- set
- {
- State["patientMedicalCase"] = value;
- }
- }
- //在其他的类中比如Controler或是View中,利用Attribute来使用State中的值
- [State("patientMedicalCase")]
- private MedicalCase patientInfo = null ;
(3)使用EventBroker(事件代理)
这个真是个好东西,让触发事件和处理事件的两个类彻底解耦——两个类之间根本就不需要知道对方的存在。同时也为我们框架提供了很好的思路,并引入了这种机制,让结构变得更加优雅。EventBroker使用的方法如下:
- //在A类中定义事件,和它的Key“topic://SmartClient/Status1Update”,后面再指定一下事件的广播范围
- [EventPublication("topic://SmartClient/Status1Update", EventScope.Global)]
- public event EventHandler<DataEventArgs<string>> UpdateStatusTextEvent;
- //在B类中处理事件
- [EventSubscription("topic://SmartClient/Status1Update", EventScope.Global, Thread = ThreadOption.UserInterface)]
- public void OnStatusUpdate(object sender, DataEventArgs<string> e)
- {
- toolStripStatusLabel1.Text = e.Data;
- }
(4)WorkItem嵌套
在CAB中一个WorkItem和一个用例对应,用例就相当一个类,一个用例发生一次,就会实例化一次用例(实例化一次WorkItem).所以会出现一个workItem中会有许多子WorkItem(子用例),这样可以提高界面的响应速度,当然也需要在必要的事情清理掉短时间内不会再用刀到的WorkItem。以免内存占用过多。
文章来源:http://www.agilelabs.cn/blogs/wind_tower/archive/2006/01/11/507.aspx
posted on 2006-01-16 10:24 太白飞仙 阅读(47) 评论(0) 编辑 收藏
- [导入]Composite UI Application Blocks 点滴(一)
- Composite UI Application Block
- 初试Composite UI Application Block
- 组合界面程序块介绍(Composite UI Application Block)
- Composite UI Application Block 之自定义UIElement(二)
- 剖析:Composite UI Application Block(前言)
- Composite UI Application Block (1) ------ Glossary
- CAB(Composite UI Application Block)学习记录
- Composite UI Application Block学习笔记之一
- Composite UI Application Block 之自定义UIElement
- Composite UI Application Block 之自定义CommandAdapter
- Composite UI Application Block 之一:概述
- Composite UI Application Block 之二:界面设计
- Composite UI Application Block(Cab)资料收集
- Composite UI Application Block开发的介绍
- SmartClient Software factory中的Composite UI Application Block(Cab)技术了解(一):Shell&amp;Layout
- Composite UI Application Block (2) ------ Design of CAB
- 了解Composite UI Application Block的基本应用
- large pool
- 《人月神话》读书笔记(五)——架构时如何影响实现人员,如何避免画蛇添足
- Oracle11g 新特性更适合中型企业
- Selinux是什么?
- Oracle11g 新特性更适合中型企业
- [导入]Composite UI Application Blocks 点滴(一)
- 聚集索引和非聚集索引的区别
- Oracle11g 新特性更适合中型企业
- 《人月神话》读书笔记(六)——如何在团队中贯彻执行架构决策
- 一位软件工程师的6年总结
- Oracle11g 新特性更适合中型企业
- java中如何获取某个日期是当月的最后一天
- 计算机仿真
- c# 一个有用的汉字转拼音类