Partage via


Prise en charge d'UI Automation pour le type de contrôle DataItem

Remarque

Cette documentation est destinée aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle DataItem. Dans UI Automation, un type de contrôle est un ensemble de conditions qu’un contrôle doit respecter pour utiliser la ControlTypeProperty propriété. Les conditions incluent des instructions spécifiques pour la structure d’arborescence UI Automation, les valeurs de propriété UI Automation et les modèles de contrôle.

Une entrée dans une liste Contacts est un exemple de contrôle d’élément de données. Un contrôle d’élément de données contient des informations intéressantes pour un utilisateur final. Il est plus compliqué que l’élément de liste simple, car il contient des informations plus riches.

Les sections suivantes définissent la structure d’arborescence, les propriétés, les modèles de contrôle et les événements UI Automation requis pour le type de contrôle DataItem. Les exigences UI Automation s’appliquent à tous les contrôles d’élément de données, que Windows Presentation Foundation (WPF), Win32 ou Windows Forms.

Arborescence UI Automation obligatoire

Le tableau suivant illustre la vue de contrôle et la vue de contenu de l’arborescence UI Automation qui se rapporte aux contrôles d’élément de données et décrit ce qui peut être contenu dans chaque vue. Pour plus d’informations sur l’arborescence UI Automation, consultez vue d’ensemble de l’arborescence UI Automation.

Arborescence UI Automation - Vue contrôle Arborescence UI Automation - Affichage contenu
DataItem

- Selon le cas (0 ou plus. Peut être structuré dans une hiérarchie)
DataItem

- Selon le cas (0 ou plus. Peut être structuré dans une hiérarchie)

Un élément d’élément de données dans une grille de données peut héberger une variété d’objets, y compris une autre couche d’éléments de données ou des éléments de grille spécifiques tels que du texte, des images ou des contrôles de modification. Si l’élément d’élément de données a un rôle d’objet spécifique, l’élément doit être exposé en tant que type de contrôle spécifique ; par exemple, un type de contrôle ListItem pour un élément de données sélectionnable dans la grille.

Propriétés UI Automation obligatoires

Le tableau suivant répertorie les propriétés dont la valeur ou la définition est particulièrement pertinente pour les contrôles d’élément de données. Pour plus d’informations sur les propriétés UI Automation, consultez Propriétés UI Automation pour les clients.

Propriété Valeur Remarques
AutomationIdProperty Consultez les notes. La valeur de cette propriété doit être unique sur tous les contrôles d’une application.
BoundingRectangleProperty Consultez les notes. Rectangle le plus externe qui contient l’ensemble du contrôle.
ClickablePointProperty Consultez les notes. Prise en charge s’il existe un rectangle englobant. Si les points du rectangle englobant ne sont pas tous interactifs et que vous effectuez un test de positionnement spécialisé, vous devez remplacer et fournir un point interactif.
ControlTypeProperty DataItem Cette valeur est la même pour toutes les infrastructures d’interface utilisateur.
IsContentElementProperty Vrai Le contrôle d’élément de données doit toujours être du contenu.
IsControlElementProperty Vrai Le contrôle d’élément de données doit toujours être un contrôle.
IsKeyboardFocusableProperty Consultez les notes. Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété.
ItemStatusProperty Consultez les notes. Si le contrôle contient l’état mis à jour dynamiquement, cette propriété doit être prise en charge afin qu’une technologie d’assistance puisse recevoir des mises à jour lorsque l’état de l’élément change.
ItemTypeProperty Consultez les notes. Il s’agit de la valeur de chaîne qui transmet à l’utilisateur final l’objet sous-jacent que l’élément représente. Les exemples sont « Fichier multimédia » ou « Contact ».
LabeledByProperty Null Les contrôles d’élément de données n’ont pas d’étiquette de texte statique.
LocalizedControlTypeProperty « élément de données » Chaîne localisée correspondant au type de contrôle DataItem.
NameProperty Consultez les notes. Le contrôle d’élément de données contient toujours un élément de texte principal qui concerne ce que l’utilisateur associerait comme identificateur sémantique le plus proche de l’élément.

Modèles de contrôle UI Automation obligatoires

Le tableau suivant répertorie les modèles de contrôle Microsoft UI Automation requis pour être pris en charge par tous les contrôles d’élément de données. Pour plus d’informations sur les modèles de contrôle, consultez Vue d’ensemble des modèles de contrôle UI Automation.

Modèle de contrôle Soutien Remarques
IExpandCollapseProvider Dépend Si l’élément de données peut être développé ou réduit pour afficher et masquer des informations, le modèle ExpandCollapse doit être pris en charge.
IGridItemProvider Dépend Les éléments de données soutiennent le modèle d’élément de grille lorsqu'une collection d'éléments de données est disponible dans un conteneur qui peut être navigué de manière spatiale d'un élément à l'autre.
IScrollItemProvider Dépend Tous les éléments de données peuvent être défilés dans le champ de vision avec le modèle Élément de défilement lorsque leur conteneur de données contient plus d’éléments que l’écran ne peut afficher.
ISelectionItemProvider Oui Tous les éléments de données doivent prendre en charge le modèle Élément de sélection pour indiquer quand l’élément est sélectionné.
ITableItemProvider Dépend Si l’élément de données est contenu dans un type de contrôle Data Grid, il prend en charge ce modèle.
IToggleProvider Dépend Si l’élément de données contient un état qui peut être parcouru.
IValueProvider Dépend Si le texte principal de l’élément de données est modifiable, le modèle Valeur doit être pris en charge.

Utilisation d’éléments de données dans des listes volumineuses

Les grandes listes sont souvent virtualisées dans les frameworks d’interface utilisateur pour faciliter les performances. En raison de cela, un client UI Automation ne peut pas utiliser la fonctionnalité de requête UI Automation pour récupérer le contenu de l’arborescence complète de la même façon que dans d’autres conteneurs d’éléments. Un client doit faire défiler l’élément en mode affichage (ou développer le contrôle pour afficher toutes les options précieuses) avant d’accéder à l’ensemble complet d’informations à partir de l’élément de données.

Durant l’appel de SetFocus sur l’élément UI Automation pour l’élément de données, la casse de l’Explorateur Microsoft Windows est correctement retournée. En outre, le focus est affecté au contrôle d’édition dans la sous-arborescence de l’élément de données.

Événements UI Automation obligatoires

Le tableau suivant répertorie les événements UI Automation requis pour être pris en charge par tous les contrôles d’élément de données. Pour plus d’informations sur les événements, consultez Vue d’ensemble des événements UI Automation.

Événement UI Automation Soutien Remarques
AutomationFocusChangedEvent Obligatoire Aucun
Événement de modification de la propriété BoundingRectangleProperty. Obligatoire Aucun
Événement de modification de la propriété IsEnabledProperty. Obligatoire Aucun
Événement de modification de la propriété IsOffscreenProperty. Obligatoire Aucun
Événement de modification de la propriété NameProperty. Obligatoire Aucun
StructureChangedEvent Obligatoire Aucun
InvokedEvent Dépend Aucun
Événement de modification de la propriété ExpandCollapseStateProperty. Dépend Aucun
ElementAddedToSelectionEvent Obligatoire Aucun
ElementRemovedFromSelectionEvent Obligatoire Aucun
ElementSelectedEvent Obligatoire Aucun
Événement de modification de la propriété ToggleStateProperty. Dépend Aucun
Événement de modification de la propriété ValueProperty. Dépend Aucun

Exemple de type de contrôle DataItem

L’image suivante illustre un type de contrôle DataItem dans un contrôle List View avec prise en charge des informations enrichies pour les colonnes.

Graphique d’un contrôle d'affichage de liste avec deux éléments de données

La vue de contrôle et la vue de contenu de l'arborescence de l'UI Automation qui se rapportent au contrôle d'élément de données s'affichent ci-dessous. Les modèles de contrôle pour chaque élément Automation sont affichés entre parenthèses. Le groupe « Contoso » fait également partie de la grille de contrôle hôte du réseau de données.

Arborescence UI Automation - Vue contrôle Arborescence UI Automation - Affichage contenu
- Groupe "Contoso" (Table, Grid)
- DataItem « Accounts Receivable.doc » (TableItem, GridItem, SelectionItem, Invoke)
- Image « Comptes Receivable.doc »
- Modifier « Nom » (TableItem, GridItem, Valeur « Accounts Receivable.doc »)
- Edit « Date de modification » (TableItem, GridItem, Value « 25/08/2006 3:29 PM »)
- Edit "Size" (GridItem, TableItem, Value "11.0 Ko")
- DataItem « Accounts Payable.doc » (TableItem, GridItem, SelectionItem, Invoke)
- ...
- Groupe "Contoso" (Table, Grid)
- DataItem « Accounts Receivable.doc » (TableItem, GridItem, SelectionItem, Invoke)
- Image « Comptes Receivable.doc »
- Modifier « Nom » (TableItem, GridItem, Valeur « Accounts Receivable.doc »)
- Edit « Date de modification » (TableItem, GridItem, Value « 25/08/2006 3:29 PM »)
- Edit "Size" (GridItem, TableItem, Value "11.0 Ko")
- DataItem « Accounts Payable.doc » (TableItem, GridItem, SelectionItem, Invoke)
- …

Si une grille représente une liste d’éléments sélectionnables, les éléments d’interface utilisateur correspondants peuvent être exposés avec le type de contrôle ListItem au lieu du type de contrôle DataItem. Dans l’exemple précédent, les éléments DataItem (« Comptes Receivable.doc » et « Comptes Payable.doc ») sous Groupe (« Contoso ») peuvent être améliorés en les exposant en tant que types de contrôle ListItem, car ce type prend déjà en charge le modèle de contrôle SelectionItem.

Voir aussi