Compartir a través de


Compatibilidad de UI Automation para el tipo de control DataItem

NotaNota

Esta documentación está dirigida a desarrolladores de .NET Framework que desean usar las clases administradas de UI Automation definidas en el espacio de nombres System.Windows.Automation.Para obtener información actualizada sobre UI Automation, vea Windows Automation API: UI Automation.

En este tema se proporciona información sobre la compatibilidad de Microsoft UI Automation con el tipo de control DataItem. En UI Automation, un tipo de control es un conjunto de condiciones que debe cumplir un control para utilizar la propiedad ControlTypeProperty. Las condiciones incluyen instrucciones específicas para la estructura de árbol de UI Automation, los valores de propiedades de UI Automation y los patrones de control.

Una entrada en una lista de contactos es un ejemplo de un control de elemento de datos. Un control de elemento de datos contiene información que de interés para un usuario final. Es más complicado que un elemento de lista simple porque contiene información más enriquecida.

En las secciones siguientes se definen la estructura de árbol de UI Automation, las propiedades, los patrones de control y los eventos obligatorios para el tipo de control DataItem. Los requisitos de UI Automation se aplican a todos los controles de elemento de datos, sean de Windows Presentation Foundation (WPF), Win32 o Windows Forms.

Este tema contiene las secciones siguientes.

  • Estructura de árbol de automatización de la interfaz de usuario obligatoria
  • Propiedades necesarias de automatización de la interfaz de usuario
  • Patrones de control de automatización de la interfaz de usuario obligatorios
  • Trabajar con elementos de datos en listas grandes
  • Eventos de automatización de la interfaz de usuario obligatorios
  • Ejemplo del tipo de control DataItem
  • Temas relacionados

Estructura de árbol de automatización de la interfaz de usuario obligatoria

En la tabla siguiente se muestran la vista de control y la vista de contenido del árbol de UI Automation correspondiente a los controles de elemento de datos y se describe qué puede contener cada vista. Para obtener más información sobre el árbol de UI Automation, vea Información general sobre el árbol de la UI Automation.

Árbol de UI Automation: vista de control

Árbol de UI Automation: vista de contenido

DataItem

  • Varía (0 o más; se puede estructurar en jerarquía)

DataItem

  • Varía (0 o más; se puede estructurar en jerarquía)

Un elemento de datos de una cuadrícula de datos puede hospedar diversos objetos, incluso otra capa de elementos de datos, o elementos de cuadrícula concretos como texto, imágenes o controles de edición. Si el elemento de datos tiene un rol de objeto concreto, el elemento se debe exponer como un tipo de control concreto; por ejemplo, el tipo de control ListItem para un elemento de datos seleccionable en la cuadrícula.

Propiedades necesarias de automatización de la interfaz de usuario

En la tabla siguiente se muestra una lista de propiedades cuyo valor o definición es especialmente relevante para los controles de elemento de datos. Para obtener más información sobre las propiedades de UI Automation, vea Propiedades de UI Automation para clientes.

Propiedad

Valor

Notas

AutomationIdProperty

Vea las notas.

El valor de esta propiedad debe ser único en todos los controles de una aplicación.

BoundingRectangleProperty

Consulte las notas.

El rectángulo más externo que contiene el control completo.

ClickablePointProperty

Vea las notas.

Se admite si hay un rectángulo delimitador. Si no se puede hacer clic en todos los puntos dentro del rectángulo delimitador y realiza una prueba de posicionamiento especializada, invalide y proporcione un punto donde hacer clic.

ControlTypeProperty

DataItem

Este valor es el mismo para todos los marcos de trabajo de interfaz de usuario.

IsContentElementProperty

True

El control de elemento de datos siempre debe ser el contenido.

IsControlElementProperty

True

El control de elemento de datos siempre debe ser un control.

IsKeyboardFocusableProperty

Consulte las notas.

Si el control puede recibir el foco del teclado, debe admitir esta propiedad.

ItemStatusProperty

Consulte las notas.

Si el control contiene un estado que se actualiza dinámicamente, se debe admitir esta propiedad para que una tecnología de ayuda pueda recibir actualizaciones cuando cambie el estado del elemento.

ItemTypeProperty

Consulte las notas.

Éste es el valor de tipo String que transmite al usuario final el objeto subyacente que el elemento representa. Ejemplos de ello son "Archivo multimedia" o "Contacto".

LabeledByProperty

Null

Los controles de elemento de datos no tienen una etiqueta de texto estática.

LocalizedControlTypeProperty

"data item"

Cadena adaptada que corresponde al tipo de control DataItem.

NameProperty

Consulte las notas.

El control de elemento de datos siempre contiene un elemento de texto primario que está relacionado con lo que el usuario asociaría como identificador más semántico del elemento.

Patrones de control de automatización de la interfaz de usuario obligatorios

En la tabla siguiente se muestra una lista de los patrones de control de Microsoft UI Automation con los que deben ser compatibles todos los controles de elemento de datos. Para obtener más información acerca de los patrones de control, consulte Información general acerca de los patrones de control de automatización de la interfaz de usuario.

Patrón de control

Compatibilidad

Notas

IExpandCollapseProvider

Depende

Si el elemento de datos se puede expandir o contraer para mostrar y ocultar información, debe admitirse el patrón ExpandCollapse.

IGridItemProvider

Depende

Los elementos de datos admitirán el patrón GridItem cuando haya una colección de elementos de datos disponible dentro de un contenedor en el que se puede navegar espacialmente de un elemento a otro.

IScrollItemProvider

Depende

Todos los elementos de datos admiten la función de desplazamiento para verlos mediante el patrón ScrollItem cuando su contenedor de datos tiene más elementos de los que caben en la pantalla.

ISelectionItemProvider

Todos los elementos de datos deben admitir el patrón SelectionItem para indicar cuándo está seleccionado el elemento.

ITableItemProvider

Depende

Si el elemento de datos está contenido en un tipo de control DataGrid, admitirá este patrón.

IToggleProvider

Depende

Si el elemento de datos contiene un estado que se puede recorrer cíclicamente.

IValueProvider

Depende

Si el texto primario del elemento de datos se puede editar, se debe admitir el patrón Value.

Trabajar con elementos de datos en listas grandes

Las listas grandes suelen ser datos organizados en una vista virtual en el seno de los marcos de trabajo de la UI, para mejorar el rendimiento. Por este motivo, un cliente de Automatización de la interfaz de usuario no puede utilizar la característica de consulta de UI Automation para explorar el contenido del árbol completo del mismo modo que en otros contenedores de elementos. Un cliente debe desplazar el elemento para poder verlo (o expandir el control para mostrar todas las opciones de valor) antes de tener acceso al conjunto completo de información del elemento de datos.

Al llamar a SetFocus en el elemento de UI Automation correspondiente al elemento de datos, el caso Microsoft Windows Explorer se devolverá correctamente y hará que el foco se establezca en el elemento Edit del árbol secundario del elemento de datos.

Eventos de automatización de la interfaz de usuario obligatorios

En la tabla siguiente se indican los eventos de UI Automation que deben admitir todos los controles de elemento de datos. Para obtener más información sobre los eventos, vea Información general sobre eventos de UI Automation.

Evento de UI Automation

Compatibilidad

Notas

AutomationFocusChangedEvent

Obligatorio

Ninguno

Evento de cambio de propiedad de BoundingRectangleProperty.

Obligatorio

Ninguno

Evento de cambio de propiedad de IsEnabledProperty.

Necesario

Ninguno

Evento de cambio de propiedad de IsOffscreenProperty.

Necesario

Ninguno

Evento de cambio de propiedad de NameProperty.

Obligatorio

Ninguno

StructureChangedEvent

Obligatorio

Ninguno

InvokedEvent

Depende

Ninguno

Evento de cambio de propiedad de ExpandCollapseStateProperty.

Depende

Ninguno

ElementAddedToSelectionEvent

Obligatorio

Ninguno

ElementRemovedFromSelectionEvent

Obligatorio

Ninguno

ElementSelectedEvent

Obligatorio

Ninguno

Evento de cambio de propiedad de ToggleStateProperty.

Depende

Ninguno

Evento de cambio de propiedad de ValueProperty.

Depende

Ninguna

Ejemplo del tipo de control DataItem

La siguiente imagen muestra el tipo de control DataItem en un control ListView con compatibilidad con la información enriquecida en las columnas.

Gráfico de un control List View con dos elementos de datos

A continuación, se muestra la vista de control y la vista de contenido del árbol de UI Automation correspondiente al control de elemento de datos. Los patrones de control de cada elemento de automatización se muestran entre paréntesis. El grupo "Contoso" también forma parte de la cuadrícula del control host DataGrid.

Árbol de UI Automation: vista de control

Árbol de UI Automation: vista de contenido

  • Group "Contoso" (Table, Grid)

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

  • Image "Accounts Receivable.doc"

  • Edit "Nombre" (TableItem, GridItem, Value "Accounts Receivable.doc")

  • Edit "Fecha de modificación" (TableItem, GridItem, Value "25/8/2006 3:29 p.m.")

  • Edit "Tamaño" (GridItem, TableItem, Value "11,0 KB)

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

  • ...

  • Group "Contoso" (Table, Grid)

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

  • Image "Accounts Receivable.doc"

  • Edit "Nombre" (TableItem, GridItem, Value "Accounts Receivable.doc")

  • Edit "Fecha de modificación" (TableItem, GridItem, Value "25/8/2006 3:29 p.m.")

  • Edit "Tamaño" (GridItem, TableItem, Value "11,0 KB)

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

Si una cuadrícula representa una lista de elementos seleccionables, los elementos de la interfaz de usuario correspondientes se pueden exponer con el tipo de control ListItem, en lugar de con el tipo de control DataItem. En el ejemplo anterior, los elementos DataItem ("Accounts Receivable.doc" y "Accounts Payable.doc") de Group ("Contoso") se pueden mejorar exponiéndolos como tipos de control ListItem, porque ese tipo ya admite el patrón de control SelectionItem.

Vea también

Referencia

DataItem

Conceptos

Información general sobre tipos de control de UI Automation

Información general sobre UI Automation