表单: 关键概念

 

发布日期: 2016年7月

适用于: System Center 2012 SP1 - Service Manager,System Center 2012 R2 Service Manager,System Center 2012 - Service Manager

自定义表单之前,应先熟悉下列表单概念。

如何使用表单

将包含表单定义的管理包导入 System Center 2012 – Service Manager 后,这些表单定义被存储在数据库中。 随后,当用户启动需要显示对象的 Service Manager 控制台 任务时,Service Manager 必须查找表单以显示所请求的对象。Service Manager 会访问数据库并搜索已为该对象定义的表单。 如果没有为该对象定义任何表单,则 Service Manager 会搜索为该对象的父对象定义的表单。Service Manager 继续搜索整个对象的继承层次结构,直到它找到定义的表单为止。

普通表单

如果 Service Manager 无法为该对象或为其任何父对象找到任何表单,则 Service Manager 会动态地为该对象构建默认普通表单。 普通表单是一种由系统生成的表单,它足以满足简单的表单用途。 普通表单是一种可用于为对象快速而又简便地创建表单(无需任何表单定义)的方法。

默认情况下,普通表单会在一种不能更改的简单布局中显示表单的所有属性。 普通表单显示继承层次结构中所有父对象的属性,并且你不能更改该行为。 对普通表单的自定义受到限制。 例如,你可指定希望普通表单显示的属性;不过,该普通表单不能用作自定义的基准。 如果稍后为该对象定义了自定义表单,则你的自定义表单将覆盖该对象的普通表单。

有关在普通表单中隐藏属性以及可用于自定义普通表单的其他方式的信息,请参阅博客文章 Overview of the Forms Infrastructure and the Generic Form(表单基础结构和普通表单概述)

表单中的组合类

有时,你需要表单显示派生自多个类的信息。 若要执行此操作,请创建*“组合类”*,然后将表单上的字段绑定到该组合类。有关详细信息(有关组合类的详细信息),请参阅System Center 公用架构更改

表单的功能特性

表单具有下列功能特性:

  1. 初始化

  2. 大小和位置

  3. 刷新

  4. 提交更改

下列部分中将描述这些特性。

初始化

在初始化过程中,将对表单的可扩展应用程序标记语言 (XAML) 进行解析并实例化和加载表单上的所有控件。 表单的Loaded事件指明何时已加载表单和所有包含的元素。 数据加载操作都是异步操作。 因此,引发Loaded事件后目标实例可能不可用。 为表单设置目标实例后,DataContextChanged 事件必须改用于通知。PropertyChanged 属性对应的 DataContext 事件可用于代替 DataContextChanged 事件。

我们建议你对控件相关的自定义初始化使用Loaded事件,然后对目标实例相关的自定义初始化使用 DataContextChanged 属性中的 PropertyChangedDataContext 事件。

大小和位置

表单显示在弹出窗口中时,其初始大小将根据表单的WidthHeightMinWidthMinHeight属性确定。 如果没有为表单设置这些属性,则表单的初始大小将根据其内容计算得出。

我们建议你设置这些属性,如下所示:

  • 设置表单的WidthHeight属性以明确指定理想大小。 考虑将这些属性设置为Auto值。 这将根据内容的大小设置表单的宽度和高度。

  • 设置表单的MinWidthMinHeight属性以指定表单可接受的最小窗口。 如果用户将窗口大小调整到一个比指定大小要小的大小,则会出现滚动条以供滚动到隐藏的表单内容。

在 Service Manager 表单主机内承载该表单时,最后使用的大小和位置将得以保留,以供随后由同一个运行会话中的同一个用户显示该表单。

刷新

表单的目标实例会随着对表单执行Refresh命令所产生的结果而发生变化。 用于此命令的处理程序会从数据库中获取新数据。 当数据到达时,该表单的 DataContext 属性值会被设置为新的目标实例而且 DataContextChanged 事件会被引发。

若要区分首次加载表单时引发的 DataContextChanged 事件与被引发以用于处理Refresh命令的事件,请检查随事件一起传递的事件参数的 OldValue 属性。 如果表单刚刚初始化,则此属性为 Null。

提交更改

Service Manager 中的表单主机弹出窗口提供的按钮可用于提交在表单中所做的更改以及用于关闭弹出窗口。

用户单击表单的“应用”按钮时,将会提交该表单的目标实例进行存储。 此操作为同步操作;因此,在提交操作还未完成之前,用户不能编辑该表单。 如果在提交表单过程中出错,则会出现一条错误消息。 表单保持打开状态以供做进一步更改。 如果同时还在编辑该表单的另一个实例,则我们建议用户经常应用其更改以避免冲突。

如果用户单击“确定”按钮,则行为类似于“应用”,只不过该表单及其主机窗口会被关闭(如果表单提交操作成功)。

如果用户单击“取消”按钮,则会出现一个对话框,要求用户确认操作。 用户可以单击“是”并丢失更改,也可以单击“否”并返回到该表单。

请参阅

表单: 自定义和创作