Dela via


DataItem-kontrolltyp

Det här avsnittet innehåller information om Microsoft UI Automation-stöd för kontrolltypen DataItem.

En post i en kontaktlista är ett exempel på en dataobjektkontroll. En kontroll av dataobjekt innehåller information som är av intresse för en slutanvändare. Det är mer komplicerat än det enkla listobjektet eftersom det innehåller mer information.

I följande avsnitt definieras den nödvändiga UI Automation-trädstrukturen, egenskaper, kontrollmönster och händelser för DataItem kontrolltyp. Kraven för UI Automation gäller för alla kontroller för dataobjekt där UI-ramverket/plattformen integrerar UI Automation-stöd för kontrolltyper och kontrollmönster.

Det här avsnittet innehåller följande avsnitt.

Typisk trädstruktur

I följande tabell visas en typisk kontroll- och innehållsvy över UI Automation-trädet som gäller för kontroller för dataobjekt och beskriver vad som kan finnas i varje vy. Mer information om UI Automation-trädet finns i UI Automation Tree Overview.

Kontrollvy Innehållsvy
  • DataItem
    • Varierar (0 eller mer, kan struktureras i hierarkin)
  • DataItem
    • Varierar (0 eller mer, kan struktureras i hierarkin)

 

Ett dataobjektelement i ett datarutnät kan vara värd för en mängd olika objekt, inklusive ett annat lager med dataobjekt eller specifika rutnätselement som text, bilder eller redigeringskontroller. Om dataobjektelementet har en specifik objektroll ska elementet exponeras som en specifik kontrolltyp. Till exempel en ListItem kontrolltyp för ett valbart dataobjekt i rutnätet.

Relevanta egenskaper

I följande tabell visas de UI Automation-egenskaper vars värde eller definition är särskilt relevant för DataItem-kontrolltypen. Mer information om egenskaper för UI Automation finns i Hämta egenskaper från UI Automation-element.

UI Automation-egenskap Värde Anteckningar
UIA_AutomationIdPropertyId Se anteckningar. Värdet för den här egenskapen måste vara unikt bland alla peer-element i den råa vyn för UI Automation-trädet.
UIA_BoundingRectanglePropertyId Se anteckningar. Den yttersta rektangeln som innehåller hela kontrollen.
UIA_ClickablePointPropertyId Se anteckningar. Stöds om det finns en rektangel för avgränsning. Om inte varje punkt i avgränsningsrektangeln är klickbar och elementet utför specialiserad träfftestning åsidosätter och ger en klickbar punkt.
UIA_ControlTypePropertyId DataItem
UIA_IsContentElementPropertyId SANN Kontrollen för dataobjekt måste alltid vara innehåll.
UIA_IsControlElementPropertyId SANN Kontrollen för dataobjekt måste alltid vara en kontroll.
UIA_IsKeyboardFocusablePropertyId Se anteckningar. Om kontrollen kan få tangentbordsfokus måste den ha stöd för den här egenskapen.
UIA_ItemStatusPropertyId Se anteckningar. Om kontrollen innehåller status som uppdateras dynamiskt måste den här egenskapen stödjas så att en hjälpmedelsteknik kan ta emot uppdateringar när statusen för elementet ändras.
UIA_ItemTypePropertyId Se anteckningar. Det här är strängvärdet som förmedlar det underliggande objektet som objektet representerar till slutanvändaren. Exempel är "Media File" och "Contact".
UIA_LabeledByPropertyId Noll Dataobjektkontroller har ingen statisk textetikett.
UIA_LocalizedControlTypePropertyId Se anteckningar. Lokaliserad sträng som motsvarar DataItem kontrolltyp. Standardvärdet är "dataobjekt" för en-US eller engelska (USA).
UIA_NamePropertyId Se anteckningar. Kontrollen för dataobjekt innehåller alltid ett primärt textelement som användaren skulle känna igen som identifierare för objektet.

 

Nödvändiga kontrollmönster

I följande tabell visas de UI Automation-kontrollmönster som krävs för att stödjas av alla kontroller för dataobjekt. Mer information om kontrollmönster finns i UI Automation Control Patterns Overview.

Kontrollmönster Stöd Anteckningar
IExpandCollapseProvider Beror Om dataobjektet kan expanderas eller komprimeras för att visa och dölja information måste ExpandCollapse kontrollmönster stödjas.
IGridItemProvider Beror Dataobjekt stöder GridItem kontrollmönster när en samling dataobjekt är tillgängliga i en container som kan navigeras rumsligt från objekt till objekt.
IScrollItemProvider Beror Alla dataobjekt stöder möjligheten att rullas i vyn med ScrollItem kontrollmönster när deras datacontainer har fler objekt än vad som får plats på skärmen.
ISelectionItemProvider Beror Möjligheten att välja dataobjekt beror på innehållet.
ITableItemProvider Beror Om dataobjektet finns i en DataGrid kontrolltyp som har ett huvudelement bör det ha stöd för TableItem kontrollmönster.
IToggleProvider Beror Om dataobjektet innehåller ett tillstånd som kan växlas igenom bör det ha stöd för Växla kontrollmönster.
IValueProvider Beror Om dataobjektets primära text kan redigeras måste kontrollmönstret Value stödjas.

 

Arbeta med DataItems i stora listor

Eftersom stora listor ofta virtualiseras inom gränssnittsramverk för att hjälpa till med prestanda kan en UI Automation-klient inte använda UI Automation-frågefunktionen för att söka i innehållet i det fullständiga trädet på samma sätt som i andra objektcontainrar. En klient bör rulla objektet i vyn (eller expandera kontrollen för att visa alla tillgängliga alternativ) innan du får åtkomst till den fullständiga uppsättningen information från dataobjektet.

När du anropar SetFocus på UI Automation-elementet för dataobjektet returnerar Microsoft Windows Explorer korrekt och gör att fokus ställs in på kontrollen Redigera i underträdet för dataobjektet.

Nödvändiga händelser

I följande tabell visas de UI Automation-händelser som dataobjektkontroller krävs för att stödja. Mer information om händelser finns i UI Automation Events Overview.

UI Automation-händelse Anteckningar
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId händelse som ändrats av egenskapen.
UIA_ExpandCollapseExpandCollapseStatePropertyId händelse som ändrats av egenskapen. Om kontrollen stöder ExpandCollapse kontrollmönster måste den stödja den här händelsen.
UIA_Invoke_InvokedEventId Om kontrollen stöder Anropa kontrollmönster måste den stödja den här händelsen.
UIA_IsEnabledPropertyId händelse som ändrats av egenskapen. Om kontrollen stöder egenskapen IsEnabled måste den stödja den här händelsen.
UIA_IsOffscreenPropertyId händelse som ändrats av egenskapen. Om kontrollen stöder egenskapen IsOffscreen måste den ha stöd för den här händelsen.
UIA_ItemStatusPropertyId händelse som ändrats av egenskapen. Om kontrollen stöder egenskapen ItemStatus måste den stödja den här händelsen.
UIA_NamePropertyId händelse som ändrats av egenskapen.
UIA_SelectionItem_ElementAddedToSelectionEventId Om kontrollen stöder SelectionItem kontrollmönster måste den stödja den här händelsen.
UIA_SelectionItem_ElementRemovedFromSelectionEventId Om kontrollen stöder SelectionItem kontrollmönster måste den stödja den här händelsen.
UIA_SelectionItem_ElementSelectedEventId Om kontrollen stöder SelectionItem kontrollmönster måste den stödja den här händelsen.
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId händelse som ändrats av egenskapen. Om kontrollen stöder Växla kontrollmönster måste den stödja den här händelsen.
UIA_ValueValuePropertyId händelse som ändrats av egenskapen. Om kontrollen stöder kontrollmönstret Value måste den ha stöd för den här händelsen.

 

Exempel på DataItem-kontrolltyp

Följande bild visar en DataItem-kontrolltyp i en listvykontroll.

skärmbild av listvisningskontroll med dataitem-kontrolltyp

Kontrollvyn och innehållsvyn för UI Automation-trädet som gäller för kontrollen för dataobjekt visas nedan. Kontrollmönstren för varje automationselement visas inom parenteser. Group "Contoso" är också en del av rutnätet i värdkontrollen för datarutnätet. Ett exempel på en rutnätsstruktur på högre nivå finns i DataGrid-kontrolltyp.

Träd för gränssnittsautomatisering – kontrollvy Träd för gränssnittsautomatisering – innehållsvy
  • Gruppera "Contoso" (tabell, rutnät)
    • DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
      • Bild av "Konton Receivable.doc"
      • Redigera "Name" (TableItem, GridItem, Value "Accounts Receivable.doc")
      • Redigera "Ändrad datum" (TableItem, GridItem, Värde "2006-08-25 15:29")
      • Redigera "Size" (GridItem, TableItem, Value "11.0 KB")
    • DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
      • ...
  • Gruppera "Contoso" (tabell, rutnät)
    • DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
      • Bild av "Konton Receivable.doc"
      • Redigera "Name" (TableItem, GridItem, Value "Accounts Receivable.doc")
      • Redigera "Ändrad datum" (TableItem, GridItem, Värde "2006-08-25 15:29")
      • Redigera "Size" (GridItem, TableItem, Value "11.0 KB")
    • DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
      • ...

 

Om ett rutnät representerar en lista över valbara objekt kan motsvarande valbara gränssnittselement exponeras med ListItem kontrolltyp i stället för DataItem-kontrolltypen. I föregående exempel kan elementen DataItem ("Accounts Receivable.doc" och "Accounts Payable.doc") under Group ("Contoso") förbättras genom att de exponeras som ListItem-kontrolltyper eftersom den typen redan stöder SelectionItem kontrollmönster.

konceptuell

översikt över UI Automation-kontrolltyper

översikt över UI Automation