Compartir a través de


Tipo de control DataItem

En este tema se proporciona información sobre la compatibilidad de Microsoft Automatización de la interfaz de usuario con el tipo de control DataItem.

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

En las secciones siguientes se definen la estructura de árbol Automatización de la interfaz de usuario necesaria, las propiedades, los patrones de control y los eventos para el tipo de control DataItem. Los requisitos de Automatización de la interfaz de usuario se aplican a todos los controles de elementos de datos en los que el marco o la plataforma de la interfaz de usuario se integra Automatización de la interfaz de usuario compatibilidad con los tipos de control y los patrones de control.

En este tema se incluyen las siguientes secciones.

Estructura de árbol típica

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

Vista de control 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, entre los que se incluye otra capa de elementos de datos o elementos de cuadrícula concretos como controles de edición, texto o imágenes. Si el elemento de elemento de datos tiene un rol de objeto específico, el elemento debe exponerse como un tipo de control específico; por ejemplo, un tipo de control ListItem para un elemento de datos seleccionable en la cuadrícula.

Propiedades pertinentes

En la tabla siguiente se enumeran las propiedades Automatización de la interfaz de usuario cuyo valor o definición es especialmente relevante para el tipo de control DataItem. Para obtener más información sobre las propiedades de Automatización de la interfaz de usuario, vea Recuperar propiedades de Automatización de la interfaz de usuario Elements.

Propiedad de automatización de interfaz de usuario Valor Notas
UIA_AutomationIdPropertyId Vea las notas. El valor de esta propiedad debe ser único entre todos los elementos del mismo nivel en la vista sin procesar del árbol de Automatización de la interfaz de usuario.
UIA_BoundingRectanglePropertyId Vea las notas. El rectángulo exterior que contiene el control completo.
UIA_ClickablePointPropertyId Vea las notas. Se admite si hay un rectángulo delimitador. Si no se puede hacer clic en todos los puntos del rectángulo delimitador y el elemento realiza pruebas de posicionamiento especializadas, invalide y proporcione un punto en el que se pueda hacer clic.
UIA_ControlTypePropertyId DataItem
UIA_IsContentElementPropertyId TRUE El control de elemento de datos siempre debe ser contenido.
UIA_IsControlElementPropertyId TRUE El control de elemento de datos siempre debe ser un control.
UIA_IsKeyboardFocusablePropertyId Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
UIA_ItemStatusPropertyId Vea las notas. Si el control contiene el estado que se actualiza dinámicamente, esta propiedad debe admitirse para que una tecnología de asistencia pueda recibir actualizaciones cuando cambie el estado del elemento.
UIA_ItemTypePropertyId Vea las notas. Este es el valor de cadena que transmite al usuario final el objeto subyacente que representa el elemento. Algunos ejemplos son "Archivo multimedia" y "Contacto".
UIA_LabeledByPropertyId Null Los controles de elemento de datos no tienen una etiqueta de texto estático.
UIA_LocalizedControlTypePropertyId Vea las notas. Cadena localizada correspondiente al tipo de control DataItem . El valor predeterminado es "elemento de datos" para en-US o inglés (Estados Unidos).
UIA_NamePropertyId Vea las notas. El control de elemento de datos siempre contiene un elemento de texto principal que el usuario reconocería como identificador del elemento.

 

Patrones de control necesarios

En la tabla siguiente se enumeran los patrones de control Automatización de la interfaz de usuario que todos los controles de elementos de datos deben admitir. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Patrón de control Soporte técnico Notas
IExpandCollapseProvider Depende Si el elemento de datos se puede expandir o contraer para mostrar y ocultar información, se debe admitir el patrón de control ExpandCollapse .
IGridItemProvider Depende Los elementos de datos admitirán el patrón de control GridItem cuando haya disponible una colección de elementos de datos dentro de un contenedor que se pueda navegar espacialmente por elemento a elemento.
IScrollItemProvider Depende Todos los elementos de datos admiten la capacidad de desplazarse a la vista con el patrón de control ScrollItem cuando su contenedor de datos tiene más elementos de los que pueden caber en la pantalla.
ISelectionItemProvider Depende La capacidad de seleccionar los elementos de datos depende del contenido.
ITableItemProvider Depende Si el elemento de datos se encuentra dentro de un tipo de control DataGrid que tiene un elemento de encabezado, debe admitir el patrón de control TableItem .
IToggleProvider Depende Si el elemento de datos contiene un estado que se puede recorrer en ciclo, debe admitir el patrón de control Alternar .
IValueProvider Depende Si el texto principal del elemento de datos es editable, se debe admitir el patrón de control Value .

 

Trabajar con DataItems en listas grandes

Dado que las listas grandes a menudo se virtualizan en marcos de interfaz de usuario para ayudar en el rendimiento, un cliente de Automatización de la interfaz de usuario no puede usar la característica de consulta de Automatización de la interfaz de usuario para buscar el contenido del árbol completo de la misma manera que puede en otros contenedores de elementos. Un cliente debe desplazar el elemento a la vista (o expandir el control para mostrar todas las opciones disponibles) antes de tener acceso al conjunto completo de información del elemento de datos.

Al llamar a SetFocus en el elemento Automatización de la interfaz de usuario para el elemento de datos, el Explorador de Microsoft Windows devuelve correctamente y hace que el foco se establezca en el control Editar dentro del subárbol del elemento de datos.

Eventos necesarios

En la tabla siguiente se enumeran los eventos Automatización de la interfaz de usuario que los controles de elementos de datos son necesarios para admitir. Para más información sobre los eventos, vea UI Automation Events Overview.

Evento de Automatización de la interfaz de usuario Notas
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId evento de cambio de propiedad.
UIA_ExpandCollapseExpandCollapseStatePropertyId evento de cambio de propiedad. Si el control admite el patrón de control ExpandCollapse , debe admitir este evento.
UIA_Invoke_InvokedEventId Si el control admite el patrón de control Invoke , debe admitir este evento.
UIA_IsEnabledPropertyId evento de cambio de propiedad. Si el control admite la propiedad IsEnabled , debe admitir este evento.
UIA_IsOffscreenPropertyId evento de cambio de propiedad. Si el control admite la propiedad IsOffscreen , debe admitir este evento.
UIA_ItemStatusPropertyId evento de cambio de propiedad. Si el control admite la propiedad ItemStatus , debe admitir este evento.
UIA_NamePropertyId evento de cambio de propiedad.
UIA_SelectionItem_ElementAddedToSelectionEventId Si el control admite el patrón de control SelectionItem , debe admitir este evento.
UIA_SelectionItem_ElementRemovedFromSelectionEventId Si el control admite el patrón de control SelectionItem , debe admitir este evento.
UIA_SelectionItem_ElementSelectedEventId Si el control admite el patrón de control SelectionItem , debe admitir este evento.
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Toggle , debe admitir este evento.
UIA_ValueValuePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Value , debe admitir este evento.

 

Ejemplo de tipo de control DataItem

En la imagen siguiente se muestra un tipo de control DataItem en un control de vista de lista.

captura de pantalla del control de vista de lista con el tipo de control dataitem

A continuación se muestra la vista de control y la vista de contenido del árbol de Automatización de la interfaz de usuario que pertenece 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 de cuadrícula de datos. Para obtener un ejemplo de una estructura de cuadrícula de nivel superior, vea Tipo de control DataGrid.

Árbol de Automatización de la interfaz de usuario: vista de control Árbol de Automatización de la interfaz de usuario: vista de contenido
  • Group "Contoso" (Table, Grid)
    • DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
      • Image "Accounts Receivable.doc"
      • Edit "Name" (TableItem, GridItem, Value "Accounts Receivable.doc")
      • Edit "Date modified" (TableItem, GridItem, Value "8/25/2006 3:29 PM")
      • Editar "Size" (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 "Name" (TableItem, GridItem, Value "Accounts Receivable.doc")
      • Edit "Date modified" (TableItem, GridItem, Value "8/25/2006 3:29 PM")
      • Editar "Size" (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 interfaz de usuario seleccionables correspondientes se pueden exponer con el tipo de control ListItem en lugar del tipo de control DataItem. En el ejemplo anterior, los elementos DataItem ("Accounts Receivable.doc" y "Accounts Payable.doc") en Group ("Contoso") se pueden mejorar exponiendo como tipos de control ListItem porque ese tipo ya admite el patrón de control SelectionItem .

Conceptual

Información general sobre tipos de control de UI Automation

Información general sobre UI Automation