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

更新:2007 年 11 月

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

利用 DataGrid 控件类型,用户可以轻松地处理包含列中所显示元数据的项。数据网格控件在行中显示项,在列中显示有关这些项的信息。Microsoft Vista 资源管理器中的列表视图控件就是支持 DataGrid 控件类型的示例。

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

本主题包括下列各节。

  • 必需的 UI 自动化树结构
  • 必需的 UI 自动化属性
  • 必需的 UI 自动化控件模式
  • 必需的 UI 自动化事件
  • Date Grid 控件类型示例
  • 相关主题

必需的 UI 自动化树结构

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

UI 自动化树 - 控件视图

UI 自动化树 - 内容视图

  • DataGrid

    • Header

    • HeaderItem(Header 的子项)

    • DataItem

  • DataGrid

    • DataItem

必需的 UI 自动化属性

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

属性

说明

AutomationIdProperty()

请参见“说明”。

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

BoundingRectangleProperty

请参见“说明”。

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

ClickablePointProperty

请参见“说明”。

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

ControlTypeProperty

DataGrid

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

IsContentElementProperty

True

此属性的值必须始终为 True。这意味着数据网格控件必须始终位于 UI 自动化树的内容视图中。

IsControlElementProperty

True

此属性的值必须始终为 True。这意味着数据网格控件必须始终位于 UI 自动化树的控件视图中。

IsKeyboardFocusableProperty

请参见“说明”。

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

LabeledByProperty

请参见“说明”。

如果存在静态文本标签,则此属性必须公开对该控件的引用。

LocalizedControlTypeProperty

“数据网格”

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

NameProperty

请参见“说明”。

数据网格控件通常从静态文本标签获取其 Name 属性的值。如果没有静态文本标签,则应用程序开发人员必须为 Name 属性赋值。Name 属性的值决不应该是编辑控件的文本内容。

必需的 UI 自动化控件模式

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

控件模式接口

支持/值

说明

IGridProvider

数据网格控件本身始终支持 Grid 控件模式,因为它包含的项具有放置在网格中的元数据。

IScrollProvider

视情况而定

是否能够滚动数据网格取决于内容以及滚动条是否存在。

ISelectionProvider

所有数据网格控件内都包含可选择的项。

ITableProvider

数据网格控件的子树内始终有标题,因此必须支持 Table 控件模式。

数据网格容器内的数据项控件至少将支持:

  • Selection Item 控件模式

  • Scroll Item 控件模式(如果容器是可滚动的)

数据项容器内的项至少将支持:

  • Grid Item 控件模式

  • Table Item 控件模式

必需的 UI 自动化事件

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

UI 自动化事件

支持/值

说明

AutomationFocusChangedEvent

必需

BoundingRectangleProperty property-changed 事件。

必需

IsEnabledProperty property-changed 事件。

必需

IsOffscreenProperty property-changed 事件。

必需

LayoutInvalidatedEvent

视情况而定

StructureChangedEvent

必需

CurrentViewProperty property-changed 事件。

视情况而定

HorizontallyScrollableProperty property-changed 事件。

视情况而定

如果控件支持 Scroll 模式,则它必须支持此事件。

HorizontalScrollPercentProperty property-changed 事件。

视情况而定

如果控件支持 Scroll 模式,则它必须支持此事件。

HorizontalViewSizeProperty property-changed 事件。

视情况而定

如果控件支持 Scroll 模式,则它必须支持此事件。

VerticalScrollPercentProperty property-changed 事件。

视情况而定

如果控件支持 Scroll 模式,则它必须支持此事件。

VerticallyScrollableProperty property-changed 事件。

视情况而定

如果控件支持 Scroll 模式,则它必须支持此事件。

VerticalViewSizeProperty property-changed 事件。

视情况而定

如果控件支持 Scroll 模式,则它必须支持此事件。

InvalidatedEvent

必需

Date Grid 控件类型示例

下图举例说明了实现 DataGrid 控件类型的列表视图控件。

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

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

UI 自动化树 - 控件视图

UI 自动化树 - 内容视图

DataGrid(Sort、Table、Selection、Grid)

  • Header

    • HeaderItem“名称”(Invoke)

    • HeaderItem“修改日期”(Invoke)

    • HeaderItem“大小”(Invoke)

  • Group“Contoso”

    • DataItem“Accounts Receivable.doc”(SelectionItem、Invoke)

    • DataItem“Accounts Payable.doc”(SelectionItem、Invoke)

DataGrid(Sort、Table、Selection、Grid)

  • Group“Contoso”

    • DataItem“Accounts Receivable.doc”(SelectionItem、Invoke)

    • DataItem“Accounts Payable.doc”(SelectionItem、Invoke)

Data Item 自动化元素可以具有以下子项:Edit、Image 和 Text。

请参见

概念

UI 自动化控件类型概述

UI 自动化概述

参考

DataGrid