SailingEase WinForm Framework
指导手册
下载与技术支持
概述
开发指引
解耦引用不同模块的复合视图
附加功能
解耦引用不同模块的复合视图

在模块化的应用程序中,有时会出现同一个视图包含来自多个模块的子视图的情况。

举例来说,当我在用户信息模块中的用户列表画面中选择用户时,画面底部需要显示用户最近一笔订单,而这个订单信息区域(View),需要由订单模块提供,但是当订单模块不存在,或没有加载时,用户画面依然可以正常显示及使用,只是显示订单信息的位置,被隐藏了。

当用户模块和订单模块同时存在时:



选中用户列表中的用户,则在画面下方自动显示其最近订单。

显然用户模块与订单模块不仅有视图层面的融合,还有操作响应上的融合,而这些融合与调用,在 SailingEase WinForm Framework 中是完全解耦合的,两个模块之间不存在任何互相引用关系。

当订单模块不存在或没有加载时,用户模块中的画面将自动调整,UI操作不会有任何影响:



在  SailingEase WinForm Framework 中如何处理这种情况呢?

原理并不复杂,你可以在用户模块中创建一个包含用户列表的基本视图,并让其包含一个区域,用于显示选中用户最近的订单,当这块区域不可用时,其能够自动隐藏,变成图2的样子。
然后在订单模块中,通过接口,公布一个方法用于获取指定用户最近的订单列表的视图,如:

IView GetOrderListView();

在用户列表视图加载时,获取订单模块的公开接口,如果能够获取到接口的实例,表示当前加载了订单模块,只需调用 GetOrderListView 接口,得到相应的视图,将其呈现到用户列表下方的指定区域中即可。

© Copyright 2015 All Rights Reserved 滁州市升讯威软件技术有限公司