DataItem 控件类型
本主题提供有关 DataItem 控件类型的Microsoft UI 自动化支持的信息。
联系人列表中的条目是数据项控件的示例。 数据项控件包含最终用户感兴趣的信息。 它比简单的列表项复杂得多,因为它包含更丰富的信息。
以下部分定义了 DataItem 控件类型的所需 UI 自动化树结构、属性、控件模式和事件。 UI 自动化要求适用于 UI 框架/平台集成 UI 自动化对控件类型和控件模式的支持的所有数据项控件。
本主题包含以下部分。
典型树结构
下表描述了与数据项控件相关的 UI 自动化树的典型控件和内容视图,并描述了每个视图中可包含的内容。 有关 UI 自动化树的详细信息,请参阅 UI 自动化树概述。
控件视图 | 内容视图 |
---|---|
|
|
数据网格中的数据项元素可以承载各种对象,包括另一层数据项,或特定的网格元素,如文本、图像或编辑控件。 如果数据项元素具有特定的对象角色,则应以特定控件类型的形式公开该元素;例如,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 自动化树 - 内容视图 |
---|---|
|
|
如果网格表示可选择项的列表,则可以使用 ListItem 控件类型(而不是 DataItem 控件类型)公开相应的可选 UI 元素。 在前面的示例中,组(“Contoso”)下的 DataItem 元素(“Accounts Receivable.doc”和“Accounts Payable.doc”)可以通过将其公开为 ListItem 控件类型来改进,因为该类型已支持 SelectionItem 控件模式。
相关主题