DataItem 控件类型

本主题提供有关 DataItem 控件类型的Microsoft UI 自动化支持的信息。

联系人列表中的条目是数据项控件的示例。 数据项控件包含最终用户感兴趣的信息。 它比简单的列表项复杂得多,因为它包含更丰富的信息。

以下部分定义了 DataItem 控件类型的所需 UI 自动化树结构、属性、控件模式和事件。 UI 自动化要求适用于 UI 框架/平台集成 UI 自动化对控件类型和控件模式的支持的所有数据项控件。

本主题包含以下部分。

典型树结构

下表描述了与数据项控件相关的 UI 自动化树的典型控件和内容视图,并描述了每个视图中可包含的内容。 有关 UI 自动化树的详细信息,请参阅 UI 自动化树概述

控件视图 内容视图
  • DataItem
    • 变化 (0 或更多;可以在层次结构中结构化)
  • DataItem
    • 变化 (0 或更多;可以在层次结构中结构化)

 

数据网格中的数据项元素可以承载各种对象,包括另一层数据项,或特定的网格元素,如文本、图像或编辑控件。 如果数据项元素具有特定的对象角色,则应以特定控件类型的形式公开该元素;例如,ListItem 网格中可选数据项的控件类型。

相关属性

下表列出了其值或定义与 DataItem 控件类型特别相关的 UI 自动化属性。 有关 UI 自动化属性的详细信息,请参阅 从 UI 自动化元素检索属性

UI 自动化属性 价值 笔记
UIA_AutomationIdPropertyId 请参阅备注。 此属性的值在 UI 自动化树的原始视图中的所有对等元素中必须是唯一的。
UIA_BoundingRectanglePropertyId 请参阅备注。 包含整个控件的最外侧矩形。
UIA_ClickablePointPropertyId 请参阅备注。 如果存在边界矩形,则受支持。 如果边界矩形中的每个点都不可单击,并且该元素执行专用命中测试,请重写并提供可单击点。
UIA_ControlTypePropertyId DataItem
UIA_IsContentElementPropertyId 数据项控件必须始终为内容。
UIA_IsControlElementPropertyId 数据项控件必须始终是控件。
UIA_IsKeyboardFocusablePropertyId 请参阅备注。 如果控件可以接收键盘焦点,它必须支持此属性。
UIA_ItemStatusPropertyId 请参阅备注。 如果控件包含动态更新的状态,则必须支持此属性,以便辅助技术可以在元素状态更改时接收更新。
UIA_ItemTypePropertyId 请参阅备注。 这是向最终用户传达项所表示的基础对象的字符串值。 示例包括“媒体文件”和“联系人”。
UIA_LabeledByPropertyId 数据项控件没有静态文本标签。
UIA_LocalizedControlTypePropertyId 请参阅备注。 DataItem 控件类型对应的本地化字符串。 默认值为 en-US 或英语(美国)的“数据项”。
UIA_NamePropertyId 请参阅备注。 数据项控件始终包含一个主文本元素,用户将识别为该项的标识符。

 

所需的控件模式

下表列出了所有数据项控件支持所需的 UI 自动化控件模式。 有关控件模式的详细信息,请参阅 UI 自动化控件模式概述

控件模式 支持 笔记
IExpandCollapseProvider 取决于 如果数据项可以展开或折叠以显示和隐藏信息,则必须支持 ExpandCollapse 控件模式。
IGridItemProvider 取决于 当数据项集合在可以空间导航的项到项的容器中可用时,数据项将支持 GridItem 控件模式。
IScrollItemProvider 取决于 所有数据项都支持使用 ScrollItem 控件模式滚动到视图中的功能,而其数据容器的项数超过在屏幕上可以容纳的项数。
ISelectionItemProvider 取决于 选择数据项的能力取决于内容。
ITableItemProvider 取决于 如果数据项包含在具有标头元素的 DataGrid 控件类型中,则它应支持 TableItem 控件模式。
IToggleProvider 取决于 如果数据项包含可以循环访问的状态,它应支持 切换 控件模式。
IValueProvider 取决于 如果数据项的主文本可编辑,则必须支持 控件模式。

 

在大型列表中处理 DataItems

由于大型列表通常在 UI 框架中虚拟化以帮助提高性能,因此 UI 自动化客户端无法使用 UI 自动化查询功能以与其他项容器中相同的方式搜索完整树的内容。 在访问数据项的完整信息集之前,客户端应将项滚动到视图中(或展开控件以显示所有可用选项)。

在数据项的 UI 自动化元素上调用 SetFocus 时,Microsoft Windows 资源管理器将成功返回,并使焦点设置为数据项子树中的“编辑”控件。

必需事件

下表列出了数据项控件需要支持的 UI 自动化事件。 有关事件的详细信息,请参阅 UI 自动化事件概述

UI 自动化事件 笔记
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_ExpandCollapseExpandCollapseStatePropertyId 属性更改事件。 如果控件支持 ExpandCollapse 控件模式,则必须支持此事件。
UIA_Invoke_InvokedEventId 如果控件支持 调用 控件模式,则必须支持此事件。
UIA_IsEnabledPropertyId 属性更改事件。 如果控件支持 IsEnabled 属性,则必须支持此事件。
UIA_IsOffscreenPropertyId 属性更改事件。 如果控件支持 IsOffscreen 属性,则必须支持此事件。
UIA_ItemStatusPropertyId 属性更改事件。 如果控件支持 ItemStatus 属性,则必须支持此事件。
UIA_NamePropertyId 属性更改事件。
UIA_SelectionItem_ElementAddedToSelectionEventId 如果控件支持 SelectionItem 控件模式,则必须支持此事件。
UIA_SelectionItem_ElementRemovedFromSelectionEventId 如果控件支持 SelectionItem 控件模式,则必须支持此事件。
UIA_SelectionItem_ElementSelectedEventId 如果控件支持 SelectionItem 控件模式,则必须支持此事件。
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId 属性更改事件。 如果控件支持 Toggle 控件模式,则必须支持此事件。
UIA_ValueValuePropertyId 属性更改事件。 如果控件支持 控件模式,则它必须支持此事件。

 

DataItem 控件类型示例

下图演示了列表视图控件中的 DataItem 控件类型。

使用 dataitem 控件类型 列表视图控件的屏幕截图

下面显示了与数据项控件相关的 UI 自动化树的控件视图和内容视图。 每个自动化元素的控件模式显示在括号中。 “Contoso”也是数据网格主机控件网格的一部分。 有关更高级别网格结构的示例,请参阅 DataGrid 控件类型

UI 自动化树 - 控件视图 UI 自动化树 - 内容视图
  • 组“Contoso”(表、网格)
    • DataItem“帐户Receivable.doc”(TableItem、GridItem、SelectionItem、Invoke)
      • 图像“帐户Receivable.doc”
      • 编辑“名称”(TableItem、GridItem、值“Accounts Receivable.doc”)
      • 编辑“修改日期”(TableItem,GridItem,值“8/25/2006 3:29 PM”)
      • 编辑“大小”(GridItem、TableItem、值“11.0 KB”)
    • DataItem“帐户Payable.doc”(TableItem、GridItem、SelectionItem、Invoke)
      • ...
  • 组“Contoso”(表、网格)
    • DataItem“帐户Receivable.doc”(TableItem、GridItem、SelectionItem、Invoke)
      • 图像“帐户Receivable.doc”
      • 编辑“名称”(TableItem、GridItem、值“Accounts Receivable.doc”)
      • 编辑“修改日期”(TableItem,GridItem,值“8/25/2006 3:29 PM”)
      • 编辑“大小”(GridItem、TableItem、值“11.0 KB”)
    • DataItem“帐户Payable.doc”(TableItem、GridItem、SelectionItem、Invoke)
      • ...

 

如果网格表示可选择项的列表,则可以使用 ListItem 控件类型(而不是 DataItem 控件类型)公开相应的可选 UI 元素。 在前面的示例中,(“Contoso”)下的 DataItem 元素(“Accounts Receivable.doc”和“Accounts Payable.doc”)可以通过将其公开为 ListItem 控件类型来改进,因为该类型已支持 SelectionItem 控件模式。

概念

UI 自动化控件类型概述

UI 自动化概述