EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

Windows和框架

eXpressApp框架自动生成的Windows由两个对象定义:一个名为Template的控件和一个称为Window的抽象实体。同样,查找窗口和嵌入式列表视图由“模板”和“框架”对表示。与模板相反,窗口或框架不包含有关必须在其上放置哪些控件的信息。Windows和框架仅在eXpressApp Framework应用程序中包含有关其功能的信息。本主题提供有关这些抽象UI实体的详细信息。有关模板的信息,请参阅模板主题。

窗户和框架概述

一个Frame是由Frame类定义的;Window类的一个Window 。该框架类是基类的窗口。这些类之间的区别在于,Window是一个独立的UI元素,而Frame是一个父项。例如,主窗体和详细窗体由Window类定义。查找编辑器的下拉窗口和嵌入式列表编辑器Frame类定义。

XAF不直接使用Window类。实际上,Windows Forms和ASP.NET Web应用程序分别创建WinWindowWebWindow类实例。这些是Window类的后代。您可以在独立于UI的代码中使用Window类型,然后将其转换为特定于UI的代码中的WinWindowWebWindow类型。

Windows和Frames的基本功能是:

  • 它们都充当View的站点。

    业务应用程序主要用于查看和编辑数据。这就是默认eXpressApp Framework应用程序仅包含带有View的Windows的原因。eXpressApp Framework中的Window本身对您没有用。在构建应用程序时,您主要是指一个窗口来访问其视图。为此,请使用Window或Frame的Frame.View属性。实施自定义功能时,您可能需要将另一个视图设置为特定的窗口。为此,请使用Frame.SetView方法重载之一。

  • 它们都允许您在创建或销毁它们时执行自定义操作。

    创建Windows和Frames时,它们会找到所有适当的Controllers并将其注册到其Frame.Controllers集合中。反过来,控制器提供事件,这些事件使您可以在创建或删除所有者窗口或框架时执行特定的操作。控制器不在不同的Windows /框架之间共享。分别为每个Window和Frame创建一个Controller实例。

Windows(框架)通过Templates显示在UI中。模板同时显示窗口的控制器和视图的操作。您可以通过窗口的Window.TemplateFrame.Template)属性访问模板,并自定义此模板。有关模板自定义的信息,请参阅模板自定义主题。

访问Windows和框架

创建窗口或框架时,它将找到与之相关的所有控制器。要访问它们,可以使用所需的Window或Frame的Frame.Controllers属性。但是,在大多数情况下,您将需要执行相反的操作。由于您将在Controller类中编写代码,因此需要访问拥有特定Controller的当前Window或Frame。要了解如何执行此操作,请参阅以下列表。

  • 窗口控制器

    窗口控制器是允许在创建和销毁Windows时执行自定义代码的对象。也就是说,您可以重写其受保护的OnWindowChanging方法,处理Controller.ActivatedController.Deactivated事件。在这些事件处理程序中,您可以使用Controller的WindowController.Window属性访问相应的Window 。

  • ViewController

    视图控制器是允许在创建和销毁框架时执行自定义代码的对象。也就是说,您可以处理其Controller.ActivatedController.Deactivated事件。在这些事件处理程序中,您可以使用Controller的Controller.Frame属性访问相应的Frame 。当然,如果当前处理的Frame是Window,则可以将Frame强制转换为Window类。

  • 控制器

    如果无法通过窗口控制器或视图控制器实现功能,则可以通过声明Controller类的后代来创建自定义控制器。每次创建框架时,XAF都会调用每个Controller的OnFrameAssigned方法。重写此方法以访问正在创建的框架或窗口。

相关文章

转载保留此链接,注明出处