UI 自动化对 DataItem 控件类型的支持

更新:2007 年 11 月

本主题介绍 Microsoft UI 自动化对 DataItem 控件类型的支持。在 UI 自动化中,控件类型是一组条件,控件为了使用 ControlTypeProperty 属性必须满足这组条件。这些条件包括 UI 自动化树结构的特定准则、UI 自动化属性值和控件模式。

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

以下几节定义了 DataItem 控件类型必需的 UI 自动化树结构、属性、控件模式和事件。UI 自动化的要求适用于所有数据项控件,无论控件是 Windows Presentation Foundation (WPF)、Win32 还是 Windows 窗体。

本主题包括下列各节。

  • 必需的 UI 自动化树结构
  • 必需的 UI 自动化属性
  • 必需的 UI 自动化控件模式
  • 处理大列表中的数据项
  • 必需的 UI 自动化事件
  • DataItem 控件类型示例
  • 相关主题

必需的 UI 自动化树结构

下表描述了与数据项控件有关的 UI 自动化树的控件视图和内容视图,以及每个视图中可包含的内容。有关 UI 自动化树的更多信息,请参见 UI 自动化树概述

UI 自动化树 - 控件视图

UI 自动化树 - 内容视图

  • DataItem

    • 可变

  • DataItem

    • 可变

必需的 UI 自动化属性

下表列出了值或定义与数据项控件密切相关的属性。有关 UI 自动化属性的更多信息,请参见客户端的 UI 自动化属性

属性

说明

AutomationIdProperty()

请参见“说明”。

此属性的值必须在应用程序中的所有控件中保持唯一。

BoundingRectangleProperty

请参见“说明”。

包含整个控件的最外面的矩形。

ClickablePointProperty

请参见“说明”。

有边框时支持。如果边框中并非每个点都是可单击的,那么,在执行专用的命中测试时,请重写并提供一个可单击的点。

ControlTypeProperty

DataItem

此值对于所有的 UI 框架均相同。

IsContentElementProperty

True

数据项控件必须总是为内容。

IsControlElementProperty

True

数据项控件必须总是为控件。

IsKeyboardFocusableProperty

请参见“说明”。

如果该控件可以接收键盘焦点,则它必须支持此属性。

ItemStatusProperty

请参见“说明”。

如果控件包含可进行动态更新的主题,则必须支持该属性,以便辅助技术可以在元素的状态发生变化时接收更新。

ItemTypeProperty

请参见“说明”。

这个字符串值向最终用户传达该项所表示的基础对象。“Media File”或“Contact”就是这样的值。

LabeledByProperty

Null

数据项控件没有静态文本标签。

LocalizedControlTypeProperty

“数据项”

与 DataItem 控件类型相对应的本地化字符串。

NameProperty

请参见“说明”。

数据项控件始终包含一个关于某个内容的主要文本元素,用户希望将该内容作为最能表示该项语义的标识符来关联。

必需的 UI 自动化控件模式

下表列出了必须由所有数据项控件支持的 Microsoft UI 自动化控件模式。有关控件模式的更多信息,请参见 UI 自动化控件模式概述

控件模式/模式属性

支持/值

说明

IExpandCollapseProvider

视情况而定

如果可以通过展开或折叠数据项来显示和隐藏信息,则必须支持 Expand Collapse 模式。

IGridItemProvider

视情况而定

当数据项集合位于可在空间上逐项导航的容器中时,该数据项将支持 Grid Item 模式。

IScrollItemProvider

视情况而定

所有的数据项都支持如下功能:当屏幕上容纳不下数据容器中的项时,数据容器中的数据项将滚入具有 Scroll Item 模式的视图。

ISelectionItemProvider

所有的数据项都必须支持 Selection Item 模式以指示该项是在何时选择的。

ITableItemProvider

视情况而定

如果数据项包含在 Data Grid 控件类型中,则它将支持此模式。

IToggleProvider

视情况而定

如果数据项包含一个状态,则可以对它进行遍历。

IValueProvider

视情况而定

如果数据项的主要文本是可编辑的,则必须支持 Value 模式。

处理大列表中的数据项

大列表通常是指在 UI 框架中进行虚拟化以帮助提高性能的数据。因此,UI 自动化客户端不能使用 UI 自动化查询功能,按照与其他项容器中相同的方式来擦除整个树中的内容。在访问数据项的完整信息之前,客户端应当将该项滚入相应的视图中。

在针对数据项的 UI 自动化元素调用 SetFocus 时,Microsoft Windows 资源管理器 case 将成功返回,并导致将焦点设置在数据项子树中的 Edit 上。

必需的 UI 自动化事件

下表列出了必须由所有数据项控件支持的 UI 自动化事件。有关事件的更多信息,请参见 UI 自动化事件概述

UI 自动化事件

支持

说明

AutomationFocusChangedEvent

必需

BoundingRectangleProperty property-changed 事件。

必需

IsEnabledProperty property-changed 事件。

必需

IsOffscreenProperty property-changed 事件。

必需

NameProperty property-changed 事件。

必需

StructureChangedEvent

必需

InvokedEvent

视情况而定

ExpandCollapseStateProperty property-changed 事件。

视情况而定

ElementAddedToSelectionEvent

必需

ElementRemovedFromSelectionEvent

必需

ElementSelectedEvent

必需

ToggleStateProperty property-changed 事件。

视情况而定

ValueProperty property-changed 事件。

视情况而定

DataItem 控件类型示例

下图说明了 List View 控件中的 DataItem 控件类型。

具有两个数据项的 List View 控件图

下表显示了与数据项控件有关的 UI 自动化树的控件视图和内容视图。每个自动化元素的控件模式都显示在括号中。

UI 自动化树 - 控件视图

UI 自动化树 - 内容视图

数据项(Sort、Table、Selection 和 Grid)

  • 编辑“Accounts Receivable”(SelectionItem 和 Invoke)

  • 图像

  • 文本“11.0 KB”(GridItem 和 TableItem)

数据项(Sort、Table、Selection 和 Grid)

  • 编辑“Accounts Receivable”(SelectionItem 和 Invoke)

  • 图像

  • 文本“11.0 KB”(GridItem 和 TableItem)

请参见

概念

UI 自动化控件类型概述

UI 自动化概述

参考

DataItem