Share via


Compatibilidad de UI Automation para el tipo de control DataGrid

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.

En este tema se ofrece información sobre la compatibilidad de Automatización de la interfaz de usuario de Microsoft con el tipo de control DataGrid. En Automatización de la interfaz de usuario, un tipo de control es un conjunto de condiciones que un control debe cumplir para poder usar la propiedad ControlType. Las condiciones incluyen directrices específicas para la estructura de árbol de Automatización de la interfaz de usuario, los valores de propiedad de Automatización de la interfaz de usuario y los patrones de control.

El tipo de control DataGrid permite a un usuario trabajar fácilmente con elementos que contienen metadatos representados en columnas. Los controles de cuadrícula de datos tienen filas de elementos y columnas de información sobre esos elementos. Un control List View en Microsoft Vista Explorer es un ejemplo que admite el tipo de control DataGrid.

En las secciones siguientes se definen la estructura de árbol, las propiedades, los patrones de control y los eventos para el tipo de control DataGrid de Automatización de la interfaz de usuario necesarios. Los requisitos de Automatización de la interfaz de usuario se aplican a todos los controles de cuadrícula de datos, ya sea Windows Presentation Foundation (WPF), Win32 o Windows Forms.

Estructura de árbol de Automatización de la interfaz de usuario necesaria

En la tabla siguiente se describe la vista de control y la vista de contenido del árbol de Automatización de la interfaz de usuario que pertenece a los controles de cuadrícula de datos y se describe lo que puede incluirse en cada vista. Para más información sobre el árbol de UI Automation, vea Información general del árbol de UI Automation.

Árbol de Automatización de la interfaz de usuario: vista de control Árbol de Automatización de la interfaz de usuario: vista de contenido
DataGrid

  • Header (0, 1 o 2)

    • HeaderItem (número de columnas o filas)
  • DataItem (0 o más; se puede estructurar en jerarquía)
DataGrid

- DataItem (0 o más; se puede estructurar en jerarquía)

Propiedades de Automatización de la interfaz de usuario necesarias

En la tabla siguiente se muestran las propiedades que tienen un valor o una definición que es especialmente relevante para los controles de cuadrícula de datos. Para más información sobre las propiedades de automatización de la interfaz de usuario, vea UI Automation Properties for Clients.

Propiedad Valor Notas
AutomationIdProperty Vea las notas. El valor de esta propiedad debe ser único en todos los controles de una aplicación.
BoundingRectangleProperty Vea las notas. El rectángulo exterior que contiene el control completo.
ClickablePointProperty Vea las notas. Se admite si hay un rectángulo delimitador. Si no todos los puntos que se encuentran dentro del rectángulo delimitador son seleccionables, y realiza pruebas de aciertos especializadas, invalide y ofrezca un punto en el que hacer clic.
ControlTypeProperty DataGrid Este valor es el mismo para todos los marcos de trabajo de la interfaz de usuario.
IsContentElementProperty True El valor de esta propiedad siempre debe ser True. Esto significa que el control de cuadrícula de datos siempre debe estar en la vista de contenido del árbol de Automatización de la interfaz de usuario.
IsControlElementProperty True El valor de esta propiedad siempre debe ser True. Esto significa que el control de cuadrícula de datos siempre debe estar en la vista de control del árbol de Automatización de la interfaz de usuario.
IsKeyboardFocusableProperty Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
LabeledByProperty Vea las notas. Si hay una etiqueta de texto estático, esta propiedad debe exponer una referencia a ese control.
LocalizedControlTypeProperty "cuadrícula de datos" Cadena localizada que corresponde al tipo de control DataGrid.
NameProperty Vea las notas. El control de cuadrícula de datos normalmente obtiene el valor de su propiedad Name de una etiqueta de texto estático. Si no hay una etiqueta de texto estático, un desarrollador de aplicaciones debe asignar un valor a la propiedad Name . El valor de la propiedad Name nunca debe ser el contenido textual del control de edición.

Patrones de control de Automatización de la interfaz de usuario necesarios

En la tabla siguiente se muestran los patrones de control de necesarios para que todos los controles de cuadrícula de datos los admitan. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Patrón de control Soporte técnico Notas
IGridProvider El propio control de cuadrícula de datos siempre admite el patrón de control Grid porque los elementos que contiene incluyen metadatos que se presentan en una cuadrícula.
IScrollProvider Depende La capacidad de desplazar la cuadrícula de datos depende del contenido y de si las barras de desplazamiento están presentes.
ISelectionProvider Depende La capacidad de seleccionar la cuadrícula de datos depende del contenido.
ITableProvider El control de cuadrícula de datos siempre tiene un encabezado dentro de su subárbol, por lo que se debe admitir el patrón de control Table.

Los elementos de datos dentro de los contenedores de la cuadrícula de datos admitirán como mínimo:

  • El patrón de control Selection Item (si la cuadrícula de datos es seleccionable)

  • El patrón de control Scroll Item (si la cuadrícula de datos es desplazable)

  • El patrón de control Table Item

  • Table Item (patrón de control)

Eventos de Automatización de la interfaz de usuario necesarios

En la tabla siguiente se muestran los eventos de Automatización de la interfaz de usuario que deben admitir todos los controles de cuadrícula de datos. Para más información sobre eventos, vea UI Automation Events Overview.

Evento de Automatización de la interfaz de usuario Soporte técnico Notas
AutomationFocusChangedEvent Obligatorio None
Evento cambiado por propiedadBoundingRectangleProperty . Obligatorio None
Evento cambiado por propiedadIsEnabledProperty . Obligatorio None
Evento cambiado por propiedadIsOffscreenProperty . Obligatorio None
LayoutInvalidatedEvent Depende None
StructureChangedEvent Obligatorio None
Evento cambiado por propiedadCurrentViewProperty . Depende None
Evento cambiado por propiedadHorizontallyScrollableProperty . Depende Si el control admite el patrón Scroll, debe admitir este evento.
Evento cambiado por propiedadHorizontalScrollPercentProperty . Depende Si el control admite el patrón Scroll, debe admitir este evento.
Evento cambiado por propiedadHorizontalViewSizeProperty . Depende Si el control admite el patrón Scroll, debe admitir este evento.
Evento cambiado por propiedadVerticalScrollPercentProperty . Depende Si el control admite el patrón Scroll, debe admitir este evento.
Evento cambiado por propiedadVerticallyScrollableProperty . Depende Si el control admite el patrón Scroll, debe admitir este evento.
Evento cambiado por propiedadVerticalViewSizeProperty . Depende Si el control admite el patrón Scroll, debe admitir este evento.
InvalidatedEvent Obligatorio None

Ejemplo de tipo de control Date Grid

En la imagen siguiente se muestra un control List View que implementa el tipo de control DataGrid.

Graphic of a List View control with two data items

Las vistas de control y de contenido del árbol de Automatización de la interfaz de usuario que pertenece al control de vista de lista se muestran a continuación. Los patrones de control de cada elemento de automatización se muestran entre paréntesis.

Árbol de Automatización de la interfaz de usuario: vista de control Árbol de Automatización de la interfaz de usuario: vista de contenido
  • DataGrid (Table, Grid, Selection)
  • Encabezado

    • HeaderItem "Name" (Invoke)
    • HeaderItem "Date Modified" (Invoke)
    • HeaderItem "Size" (Invoke)
  • Group "Contoso" (TableItem, GridItem, SelectionItem, Table*, Grid*)

    • DataItem "Accounts Receivable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
    • DataItem "Accounts Payable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
  • DataGrid (Table, Grid, Selection)
  • Group "Contoso" (TableItem, GridItem, SelectionItem, Table*, Grid*)

    • DataItem "Accounts Receivable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
    • DataItem "Accounts Payable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)

* En el ejemplo anterior se muestra un elemento DataGrid que contiene varios niveles de controles. El control Group ("Contoso") contiene dos controles DataItem ("Accounts Receivable.doc" y "Accounts Payable.doc"). Un par de controles DataGrid/GridItem es independiente de un par en otro nivel. Los controles DataItem de un elemento Group también se pueden exponer como un tipo de control ListItem, lo que permite que se presenten más claramente como objetos seleccionables, en lugar de como elementos de datos simples. En este ejemplo no se incluyen los subelementos de los elementos de datos agrupados.

Consulte también