Compartir a través de


Compatibilidad de UI Automation para el tipo de control DataItem

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

En este tema se proporciona información sobre la compatibilidad de Automatización de la interfaz de usuario de Microsoft para el tipo de control DataItem. 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 ControlTypeProperty propiedad . Las condiciones incluyen directrices específicas para la estructura de árbol de UI Automation , los valores de propiedad de esta y los patrones de control.

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 que es 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 define la estructura de árbol de 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, 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 muestra 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 elementos de datos y se describe lo que se puede contener en cada vista. Para obtener más información sobre el árbol de automatización de la interfaz de usuario, consulte Introducción al árbol de automatización de la interfaz de usuario.

Árbol de automatización de la interfaz de usuario: vista de control Árbol de automatización de la interfaz de usuario: vista de contenido
DataItem

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

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

Un elemento de elemento de datos de una cuadrícula de datos puede hospedar una variedad de objetos, incluida otra capa de elementos de datos o elementos de cuadrícula específicos, como texto, imágenes o controles de edición. 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 de Automatización de la interfaz de usuario necesarias

En la tabla siguiente se enumeran las propiedades cuyo valor o definición es especialmente relevante para los controles de elementos de datos. Para obtener más información sobre las propiedades de automatización de la interfaz de usuario, consulte Propiedades de automatización de la interfaz de usuario para clientes.

Propiedad Importancia 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 DataItem Este valor es el mismo para todos los marcos de trabajo de la interfaz de usuario.
IsContentElementProperty Cierto El control de elemento de datos siempre debe ser contenido.
IsControlElementProperty Cierto El control de elemento de datos siempre debe ser un control .
IsKeyboardFocusableProperty Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
ItemStatusProperty 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.
ItemTypeProperty 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" o "Contacto".
LabeledByProperty Null Los controles de elementos de datos no tienen una etiqueta de texto estático.
LocalizedControlTypeProperty "elemento de datos" Cadena localizada que corresponde al tipo de control DataItem.
NameProperty Vea las notas. El control de elemento de datos siempre contiene un elemento de texto principal que se relaciona con lo que el usuario asociaría como el identificador más semántico del elemento.

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

En la tabla siguiente se enumeran los patrones de control de Automatización de la interfaz de usuario de Microsoft necesarios para ser compatibles con todos los controles de elementos de datos. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Patrón de control Apoyo 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 ExpandCollapse.
IGridItemProvider Depende Los elementos de datos serán compatibles con el patrón de elemento de cuadrícula cuando haya disponible una colección de elementos de datos dentro de un contenedor navegable espacialmente de un elemento a otro.
IScrollItemProvider Depende Todos los elementos de datos admiten la capacidad de desplazamiento para verlos con 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 Elemento de selección para indicar cuándo se selecciona el elemento.
ITableItemProvider Depende Si el elemento de datos se encuentra dentro de un tipo de control Data Grid, 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 principal del elemento de datos es editable, se debe admitir el patrón Value.

Trabajar con elementos de datos en listas grandes

Las listas grandes suelen ser datos virtualizados en marcos de interfaz de usuario para ayudar en el rendimiento. Debido a esto, 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 extraer 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 valiosas) antes de acceder al conjunto completo de información desde el elemento de datos.

Al llamar a SetFocus en el elemento de Automatización de la interfaz de usuario del elemento de datos, el caso de Microsoft Windows Explorer devolverá correctamente y el foco se establecerá en la edición dentro del subárbol del elemento de datos.

Eventos de Automatización de la interfaz de usuario necesarios

En la tabla siguiente se enumeran los eventos de automatización de la interfaz de usuario necesarios para ser compatibles con todos los controles de elementos de datos. Para obtener más información sobre los eventos, consulte UI Automation Events Overview.

Evento de Automatización de la interfaz de usuario Apoyo Notas
AutomationFocusChangedEvent Obligatorio Ninguno
Evento cambiado por propiedadBoundingRectangleProperty . Obligatorio Ninguno
Evento cambiado por propiedadIsEnabledProperty . Obligatorio Ninguno
Evento cambiado por propiedadIsOffscreenProperty . Obligatorio Ninguno
Evento cambiado por propiedadNameProperty . Obligatorio Ninguno
StructureChangedEvent Obligatorio Ninguno
InvokedEvent Depende Ninguno
Evento cambiado por propiedadExpandCollapseStateProperty . Depende Ninguno
ElementAddedToSelectionEvent Obligatorio Ninguno
ElementRemovedFromSelectionEvent Obligatorio Ninguno
ElementSelectedEvent Obligatorio Ninguno
Evento cambiado por propiedadToggleStateProperty . Depende Ninguno
Evento cambiado por propiedadValueProperty . Depende Ninguno

Ejemplo de tipo de control DataItem

En la imagen siguiente se muestra un tipo de control DataItem en un control List View con compatibilidad con información completa para las columnas.

Imagen de un control de visualización de lista con dos elementos de datos

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 para cada elemento de automatización se muestran entre paréntesis. El grupo "Contoso" también forma parte de la cuadrícula del control de host Data Grid.

Árbol de automatización de la interfaz de usuario: vista de control Árbol de automatización de la interfaz de usuario: vista de contenido
- Grupo "Contoso" (Tabla, Cuadrícula)
- DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- Imagen "Cuentas por cobrar.doc"
- Editar "Nombre" (Elemento de tabla, Elemento de cuadrícula, Valor "Cuentas por Cobrar.doc")
- Editar "Fecha modificada" (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)
- ...
- Grupo "Contoso" (Tabla, Cuadrícula)
- DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- Imagen "Cuentas por cobrar.doc"
- Editar "Nombre" (Elemento de tabla, Elemento de cuadrícula, Valor "Cuentas por Cobrar.doc")
- Editar "Fecha modificada" (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 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 el grupo ("Contoso") se pueden mejorar mostrándolos como tipos de control ListItem, ya que ese tipo admite el patrón de control SelectionItem.

Consulte también