DataItem (type de contrôle)
Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle DataItem .
Une entrée dans une liste de 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 l’utilisateur final. Il est plus complexe que l’élément de liste simple, car il contient des informations plus détaillées.
Les sections suivantes définissent l’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 d’UI Automation s’appliquent à tous les contrôles d’élément de données où l’infrastructure ou la plateforme d’interface utilisateur intègre la prise en charge d’UI Automation pour les types de contrôle et les modèles de contrôle.
Cette rubrique contient les sections suivantes.
- Structure d’arborescence classique
- Propriétés pertinentes
- Modèles de contrôle requis
- Utilisation de DataItems dans des listes volumineuses
- Événements obligatoires
- Exemple de type de contrôle DataItem
- Rubriques connexes
Structure d’arborescence classique
Le tableau suivant représente un contrôle classique et une vue de contenu de l’arborescence UI Automation relative aux contrôles d’élément de données et décrit ce que peut contenir chaque vue. Pour plus d’informations sur l’arborescence UI Automation, consultez UI Automation Tree Overview.
| Affichage de contrôle | Affichage de contenu |
|---|---|
|
|
Un élément de données dans une grille de données peut héberger divers objets, notamment 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 d’édition. Si l’é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 pertinentes
Le tableau suivant répertorie les propriétés UI Automation dont la valeur ou la définition est particulièrement pertinente pour le type de contrôle DataItem. Pour plus d’informations sur les propriétés UI Automation, consultez extraction de propriétés à partir d’éléments UI Automation.
| Propriété UI Automation | Valeur | Notes |
|---|---|---|
| UIA _ AutomationIdPropertyId | Consultez les remarques. | La valeur de cette propriété doit être unique parmi tous les éléments homologues de l’affichage brut de l’arborescence UI Automation. |
| UIA _ BoundingRectanglePropertyId | Consultez les remarques. | Rectangle externe qui contient l’ensemble du contrôle. |
| UIA _ ClickablePointPropertyId | Consultez les remarques. | Pris en charge s’il existe un rectangle englobant. Si tous les points du rectangle englobant ne sont pas cliquables et que l’élément effectue un test de positionnement spécialisé, substituez et fournissez un point cliquable. |
| UIA _ ControlTypePropertyId | DataItem | |
| UIA _ IsContentElementPropertyId | TRUE | Le contrôle d’élément de données doit toujours être du contenu. |
| UIA _ IsControlElementPropertyId | TRUE | Le contrôle d’élément de données doit toujours être un contrôle. |
| UIA _ IsKeyboardFocusablePropertyId | Consultez les remarques. | Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété. |
| UIA _ ItemStatusPropertyId | Consultez les remarques. | 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. |
| UIA _ ItemTypePropertyId | Consultez les remarques. | Il s’agit de la valeur de chaîne qui transmet à l’utilisateur final l’objet sous-jacent représenté par l’élément. Exemples : « fichier multimédia » et « contact ». |
| UIA _ LabeledByPropertyId | Null | Les contrôles d’élément de données n’ont pas d’étiquette de texte statique. |
| UIA _ LocalizedControlTypePropertyId | Consultez les remarques. | Chaîne localisée correspondant au type de contrôle DataItem . La valeur par défaut est « Data Item » pour en-US ou anglais (États-Unis). |
| UIA _ NamePropertyId | Consultez les remarques. | Le contrôle d’élément de données contient toujours un élément de texte principal que l’utilisateur reconnaît comme identificateur pour l’élément. |
Modèles de contrôle requis
Le tableau suivant répertorie les modèles de contrôle UI Automation qui doivent ê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 UI Automation Control Patterns Overview.
| Modèle de contrôle | Support | Notes |
|---|---|---|
| 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 de contrôle ExpandCollapse doit être pris en charge. |
| IGridItemProvider | Dépend | Les éléments de données prennent en charge le modèle de contrôle GridItem quand une collection d’éléments de données est disponible dans un conteneur qui peut faire l’objet d’une navigation spatiale d’un élément à l’élément. |
| IScrollItemProvider | Dépend | Tous les éléments de données prennent en charge la possibilité de faire défiler la vue avec le modèle de contrôle ScrollItem quand leur conteneur de données contient plus d’éléments que l’écran ne peut en contenir. |
| ISelectionItemProvider | Dépend | La possibilité de sélectionner les éléments de données dépend du contenu. |
| ITableItemProvider | Dépend | Si l’élément de données est contenu dans un type de contrôle DataGrid qui a un élément d’en-tête, il doit prendre en charge le modèle de contrôle TableItem . |
| IToggleProvider | Dépend | Si l’élément de données contient un État qui peut être parcouru, il doit prendre en charge le modèle de contrôle Toggle . |
| IValueProvider | Dépend | Si le texte principal de l’élément de données est modifiable, le modèle de contrôle value doit être pris en charge. |
Utilisation de DataItems dans des listes volumineuses
Étant donné que les listes volumineuses sont souvent virtualisées dans des infrastructures d’interface utilisateur pour aider à améliorer les performances, un client UI Automation ne peut pas utiliser la fonctionnalité de requête UI Automation pour rechercher 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 dans l’affichage (ou développer le contrôle pour afficher toutes les options disponibles) avant d’accéder à l’ensemble complet d’informations de l’élément de données.
lors de l’appel de SetFocus sur l’élément UI Automation pour l’élément de données, Microsoft Windows Explorer retourne avec succès et fait en sorte que le focus soit défini sur le contrôle d’édition dans la sous-arborescence d’éléments de données.
Événements obligatoires
Le tableau suivant répertorie les événements UI Automation que les contrôles d’élément de données doivent prendre en charge. Pour plus d’informations sur les événements, consultez UI Automation Events Overview.
| Événement UI Automation | Notes |
|---|---|
| UIA _ AutomationFocusChangedEventId | |
| UIA _ Événement de modification de propriété BoundingRectanglePropertyId. | |
| UIA _ Événement de modification de propriété ExpandCollapseExpandCollapseStatePropertyId. | Si le contrôle prend en charge le modèle de contrôle ExpandCollapse , il doit prendre en charge cet événement. |
| UIA _ Invoke _ InvokedEventId | Si le contrôle prend en charge le modèle de contrôle Invoke , il doit prendre en charge cet événement. |
| UIA _ Événement de modification de propriété IsEnabledPropertyId. | Si le contrôle prend en charge la propriété IsEnabled , il doit prendre en charge cet événement. |
| UIA _ Événement de modification de propriété IsOffscreenPropertyId. | Si le contrôle prend en charge la propriété IsOffscreen , il doit prendre en charge cet événement. |
| UIA _ Événement de modification de propriété ItemStatusPropertyId. | Si le contrôle prend en charge la propriété ItemStatus , il doit prendre en charge cet événement. |
| UIA _ Événement de modification de propriété NamePropertyId. | |
| UIA _ SelectionItem _ ElementAddedToSelectionEventId | Si le contrôle prend en charge le modèle de contrôle SelectionItem , il doit prendre en charge cet événement. |
| UIA _ SelectionItem _ ElementRemovedFromSelectionEventId | Si le contrôle prend en charge le modèle de contrôle SelectionItem , il doit prendre en charge cet événement. |
| UIA _ SelectionItem _ ElementSelectedEventId | Si le contrôle prend en charge le modèle de contrôle SelectionItem , il doit prendre en charge cet événement. |
| UIA _ StructureChangedEventId | |
| UIA _ Événement de modification de propriété ToggleToggleStatePropertyId. | Si le contrôle prend en charge le modèle de contrôle Toggle , il doit prendre en charge cet événement. |
| UIA _ Événement de modification de propriété ValueValuePropertyId. | Si le contrôle prend en charge le modèle de contrôle value , il doit prendre en charge cet événement. |
Exemple de type de contrôle DataItem
L’image suivante illustre un type de contrôle DataItem dans un contrôle List-View.

L’affichage de contrôle et l’affichage de contenu de l’arborescence UI Automation relative au contrôle d’élément de données sont affichés ci-dessous. Les modèles de contrôle de chaque élément Automation sont indiqués entre parenthèses. Le groupe « contoso » fait également partie de la grille du contrôle hôte de grille de données. Pour obtenir un exemple d’une structure de grille de niveau supérieur, consultez type de contrôle DataGrid.
| Arborescence UI Automation-vue de contrôle | Arborescence UI Automation-affichage du contenu |
|---|---|
|
|
Si une grille représente une liste d’éléments sélectionnables, les éléments d’interface utilisateur sélectionnables 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 (« accounts Receivable.doc » et « accounts Payable.doc ») sous Group (« 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 .