DataGrid (type de contrôle)

Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle DataGrid .

Le type de contrôle DataGrid permet à un utilisateur de travailler facilement avec des éléments qui contiennent des données ou des éléments d’automatisation présentés dans des colonnes ou des lignes. Les contrôles de grille de données présentent des lignes d’éléments et des colonnes d’informations sur ces éléments. un contrôle list-view dans Windows l’explorateur Vista est un exemple qui prend en charge le type de contrôle DataGrid .

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 DataGrid . Les exigences d’UI Automation s’appliquent à tous les contrôles de grille 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

Le tableau suivant représente un contrôle classique et un affichage de contenu de l’arborescence UI Automation relative aux contrôles de grille de données, et décrit ce que peut contenir chaque affichage. Pour plus d’informations sur l’arborescence UI Automation, consultez UI Automation Tree Overview.

Affichage de contrôle Affichage de contenu
  • DataGrid
    • Header (0, 1 ou 2)
      • HeaderItem (nombre de lignes ou colonnes)
    • DataItem (0 ou plus ; peut être structuré dans une hiérarchie)
  • DataGrid
    • DataItem (0 ou plus ; peut être structuré dans une hiérarchie)

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 DataGrid . 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 DataGrid
UIA _ IsContentElementPropertyId TRUE La valeur de cette propriété doit toujours être true. Cela signifie que le contrôle de grille de données doit toujours être dans l’affichage de contenu de l’arborescence UI Automation.
UIA _ IsControlElementPropertyId TRUE La valeur de cette propriété doit toujours être true. Cela signifie que le contrôle de grille de données doit toujours être inclus dans l’affichage de contrôle de l’arborescence UI Automation.
UIA _ IsKeyboardFocusablePropertyId Consultez les remarques. Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété.
UIA _ LabeledByPropertyId Consultez les remarques. S’il existe une étiquette de texte statique, cette propriété doit exposer une référence à ce contrôle.
UIA _ LocalizedControlTypePropertyId Consultez les remarques. Chaîne localisée correspondant au type de contrôle DataGrid . La valeur par défaut est « Data Grid » pour en-US ou anglais (États-Unis).
UIA _ NamePropertyId Consultez les remarques. Le contrôle de grille de données obtient généralement la valeur de sa propriété Name à partir d’une étiquette de texte statique. S’il n’y a pas d’étiquette de texte statique, un développeur d’applications doit attribuer une valeur à pour la propriété Name . La valeur de la propriété Name ne doit jamais être le contenu textuel du contrôle d’édition.

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 de grille 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
IGridProvider Obligatoire Le contrôle de grille de données lui-même prend toujours en charge le modèle de contrôle Grid , car les éléments qu’il contient ont des métadonnées disposées dans une grille.
IScrollProvider Dépend La possibilité de faire défiler la grille de données dépend du contenu et de la présence de barres de défilement.
ISelectionProvider Dépend La possibilité de sélectionner la grille de données dépend du contenu.
ITableProvider Dépend Un contrôle de grille de données qui possède un en-tête doit prendre en charge le modèle de contrôle table .

Les éléments de données dans les conteneurs de grille de données prennent en charge au minimum ce qui suit :

  • Modèle de contrôle SelectionItem (si la grille de données est sélectionnable)
  • Modèle de contrôle ScrollItem (si la grille de données est défilante)
  • GridItem (modèle de contrôle)
  • Modèle de contrôle TableItem (si la grille de données a un en-tête)

Événements obligatoires

Le tableau suivant répertorie les événements UI Automation nécessaires à la prise en charge des contrôles de grille de données. 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é 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 _ LayoutInvalidatedEventId
UIA _ StructureChangedEventId
UIA _ Événement de modification de propriété MultipleViewCurrentViewPropertyId. Si le contrôle prend en charge la propriété CurrentView du modèle de contrôle MultipleView , il doit prendre en charge cet événement.
UIA _ Événement de modification de propriété ScrollHorizontallyScrollablePropertyId. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA _ Événement de modification de propriété ScrollHorizontalScrollPercentPropertyId. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA _ Événement de modification de propriété ScrollHorizontalViewSizePropertyId. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA _ Événement de modification de propriété ScrollVerticalScrollPercentPropertyId. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA _ Événement de modification de propriété ScrollVerticallyScrollablePropertyId. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA _ Événement de modification de propriété ScrollVerticalViewSizePropertyId. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
_InvalidatedEventId de sélection UIA _

Exemple de type de contrôle DataGrid

L’image suivante illustre un contrôle List-View qui implémente le type de contrôle DataGrid .

capture d’écran du contrôle List-View avec le type de contrôle DataGrid

L’affichage de contrôle et l’affichage de contenu de l’arborescence UI Automation relative au contrôle d’affichage de liste sont affichés ci-dessous. Les modèles de contrôle de chaque élément Automation sont indiqués entre parenthèses.

Arborescence UI Automation-vue de contrôle Arborescence UI Automation-affichage du contenu
DataGrid (tri, table, sélection, grille)
  • En-tête
    • HeaderItem « Nom » (Invoke)
    • HeaderItem « Date de modification » (Invoke)
    • HeaderItem « Taille » (Invoke)
  • Groupe « contoso » (TableItem, GridItem, SelectionItem, table , Grid)
    • DataItem « comptes Receivable.doc » (SelectionItem, Invoke, TableItem , GridItem)
    • DataItem « comptes Payable.doc » (SelectionItem, Invoke, TableItem , GridItem)
DataGrid (Table, Grid, Selection)
  • Groupe « contoso » (TableItem, GridItem, SelectionItem, table , Grid)
    • DataItem « comptes Receivable.doc » (SelectionItem, Invoke, TableItem , GridItem)
    • DataItem « comptes Payable.doc » (SelectionItem, Invoke, TableItem , GridItem)

*L’exemple précédent montre une grille de données qui contient plusieurs niveaux de contrôles. Le contrôle Group (« contoso ») contient deux contrôles DataItem (« Accounts Receivable.doc » et « Accounts Payable.doc »). Une paire DataGrid de DataGrid / est indépendante d’une paire à un autre niveau. Les contrôles DataItem sous un groupe peuvent également être exposés en tant que type de contrôle ListItem , ce qui leur permet d’être présentés plus clairement comme des objets sélectionnables, plutôt que comme des éléments de données simples. Cet exemple n’inclut pas les sous-éléments des éléments de données groupés. Pour un autre exemple de plusieurs niveaux de contrôles, consultez le type de contrôle DataItem .

Conceptuel

Vue d'ensemble des types de contrôle UI Automation

Vue d'ensemble d'UI Automation