Suporte de automação de interface de usuário para o tipo de controle DataItem
Observação
Esta documentação destina-se a desenvolvedores de .NET Framework que querem usar as classes da Automação da Interface do Usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre a Automação da Interface do Usuário, confira API de Automação do Windows: Automação da Interface do Usuário.
Este tópico fornece informações sobre o suporte à Automação da Interface do Usuário para o tipo de controle de DataItem. Na Automação da Interface do Usuário, um tipo de controle é um conjunto de condições a que um controle precisa atender para usar a propriedade ControlTypeProperty. As condições incluem as diretrizes específicas para estrutura de árvore de automação da IU, os valores de propriedade de Automação da Interface do Usuário e os padrões de controle.
Uma entrada em uma lista de contatos é um exemplo de um controle de item de dados. Um controle de item de dados contém informações de interesse de um usuário final. É mais complicado do que o item de lista simples porque contém informações mais avançadas.
As seções a seguir definem a estrutura de árvore, as propriedades, os padrões de controle e os eventos necessários da Automação da Interface do Usuário para o tipo de controle DataItem. Os requisitos de Automação da Interface do Usuário se aplicam a todos os controles de item de dados, seja Windows Presentation Foundation (WPF), seja Win32, seja Windows Forms.
Estrutura de árvore de Automação da IU necessária
A tabela a seguir ilustra a exibição de controle e a exibição de conteúdo da árvore Automação da Interface do Usuário que pertence aos controles de item de dados e descreve o que pode ser contido em cada exibição. Para obter mais informações sobre a árvore de Automação da Interface do Usuário, consulte Visão geral da árvore de Automação da Interface do Usuário.
Árvore da Automação da Interface do Usuário – Exibição de Controle | Árvore da Automação da Interface do Usuário – Exibição de Conteúdo |
---|---|
DataItem – Varia (0 ou mais; pode ser estruturado na hierarquia) |
DataItem – Varia (0 ou mais; pode ser estruturado na hierarquia) |
Um elemento de item de dados em uma grade de dados pode hospedar uma variedade de objetos, incluindo outra camada de itens de dados ou elementos de grade específicos, como texto, imagens ou controles de edição. Se o elemento de item de dados tiver uma função de objeto específica, o elemento deverá ser exposto como um tipo de controle específico; por exemplo, um tipo de controle ListItem para um item de dados selecionável na grade.
Propriedades de Automação da Interface do Usuário necessárias
A tabela a seguir lista as propriedades cujo valor ou definição é especialmente relevante para controles de item de dados. Para obter mais informações sobre as propriedades de Automação da Interface do Usuário, consulte Propriedades de Automação da Interface do Usuário para clientes.
Propriedade | Valor | Observações |
---|---|---|
AutomationIdProperty | Veja as observações. | O valor dessa propriedade precisa ser exclusivo em todos os controles de um aplicativo. |
BoundingRectangleProperty | Veja as observações. | O retângulo mais externo que contém todo o controle. |
ClickablePointProperty | Veja as observações. | Com suporte se houver um retângulo delimitador. Se nem todos os pontos dentro do retângulo delimitador forem clicáveis e você executar um teste de clique especializado, substitua e forneça um ponto clicável. |
ControlTypeProperty | DataItem | Esse valor é o mesmo para todas as estruturas da IU. |
IsContentElementProperty | True | O controle de item de dados deve ser sempre conteúdo. |
IsControlElementProperty | True | O controle de item de dados deve ser sempre um controle. |
IsKeyboardFocusableProperty | Veja as observações. | Se o controle puder receber o foco do teclado, ele deverá dar suporte a essa propriedade. |
ItemStatusProperty | Veja as observações. | Se o controle contiver o status que está sendo atualizado dinamicamente, essa propriedade deverá ter suporte para que uma tecnologia adaptativa possa receber atualizações quando o status do elemento for alterado. |
ItemTypeProperty | Veja as observações. | Esse é o valor da cadeia de caracteres que transmite ao usuário final o objeto subjacente que o item representa. Os exemplos são "Arquivo de Mídia" ou "Contato". |
LabeledByProperty | Null |
Os controles de item de dados não têm um rótulo de texto estático. |
LocalizedControlTypeProperty | "item de dados" | Cadeia de caracteres localizada correspondente ao tipo de controle DataItem. |
NameProperty | Veja as observações. | O controle de item de dados sempre contém um elemento do texto primário relacionado ao que o usuário associaria como o identificador mais semântico para o item. |
Padrões de controle de Automação da Interface do Usuário necessários
A tabela a seguir lista os padrões de controle da Automação da Interface do Usuário da Microsoft necessários para terem o suporte de todos os controles de item de dados. Para saber mais sobre padrões de controle, consulte Visão geral dos padrões de controle de Automação da Interface do Usuário.
Padrão de controle | Suporte | Observações |
---|---|---|
IExpandCollapseProvider | Depende | Se o item de dados puder ser expandido ou recolhido para mostrar e ocultar informações, o padrão Expandir Recolher deverá ter suporte. |
IGridItemProvider | Depende | Os itens de dados darão suporte ao padrão item de Grade quando uma coleção de itens de dados estiver disponível em um contêiner que pode ser navegada espacialmente item a item. |
IScrollItemProvider | Depende | Todos os itens de dados dão suporte à capacidade de serem rolados para a exibição com o padrão Item de Rolagem quando o contêiner de dados deles tiver mais itens do que o que pode caber na tela. |
ISelectionItemProvider | Yes | Todos os itens de dados devem dar suporte ao padrão de Item de Seleção para indicar quando o item é selecionado. |
ITableItemProvider | Depende | Se o item de dados estiver contido em um tipo de controle de Grade de Dados, ele dará suporte a esse padrão. |
IToggleProvider | Depende | Se o item de dados contiver um estado que pode ser percorrido. |
IValueProvider | Depende | Se o texto primário do item de dados for editável, o padrão Valor deverá ter suporte. |
Trabalhando com itens de dados em listas grandes
Listas grandes geralmente são dados virtualizados em estruturas de interface do usuário para auxiliar no desempenho. Devido a isso, um cliente Automação da Interface do Usuário não pode usar o recurso de consulta de Automação da Interface do Usuário para extrair o conteúdo da árvore completa da mesma maneira que consegue em outros contêineres de itens. Um cliente deve rolar o item para a exibição (ou expandir o controle para mostrar todas as opções valiosas) antes de acessar o conjunto completo de informações do item de dados.
Ao chamar SetFocus
no elemento de Automação da Interface do Usuário para o item de dados, o caso do Microsoft Windows Explorer retornará com êxito e fará com que o foco seja definido como Editar dentro da subárvore do item de dados.
Eventos de Automação da Interface do Usuário necessários
A tabela a seguir lista os eventos da Automação da Interface do Usuário necessários para serem suportados por todos os controles de item de dados. Para obter mais informações sobre eventos, confira Visão geral de eventos de Automação da Interface do Usuário.
Evento de Automação da Interface do Usuário | Suporte | Observações |
---|---|---|
AutomationFocusChangedEvent | Obrigatório | Nenhum |
Evento de alteração da propriedade BoundingRectangleProperty. | Obrigatório | Nenhum |
Evento de alteração da propriedade IsEnabledProperty. | Obrigatório | Nenhum |
Evento de alteração da propriedade IsOffscreenProperty. | Obrigatório | Nenhum |
Evento de alteração da propriedade NameProperty. | Obrigatório | Nenhum |
StructureChangedEvent | Obrigatório | Nenhum |
InvokedEvent | Depende | Nenhum |
Evento de alteração da propriedade ExpandCollapseStateProperty. | Depende | Nenhum |
ElementAddedToSelectionEvent | Obrigatório | Nenhum |
ElementRemovedFromSelectionEvent | Obrigatório | Nenhum |
ElementSelectedEvent | Obrigatório | Nenhum |
Evento de alteração da propriedade ToggleStateProperty. | Depende | Nenhum |
Evento de alteração da propriedade ValueProperty. | Depende | Nenhum |
Exemplo de tipo de controle DataItem
A imagem a seguir ilustra um tipo de controle DataItem em um controle de Exibição de Lista com suporte para informações avançadas para as colunas.
A Exibição de Controle e a Exibição de Conteúdo da árvore de Automação da Interface do Usuário que pertence ao controle de item de dados são exibidas abaixo. Os padrões de controle de cada elemento de automação são mostrados entre parênteses. O grupo "Contoso" também faz parte da grade do controle de host da Grade de Dados.
Árvore da Automação da Interface do Usuário – Exibição de Controle | Árvore da Automação da Interface do Usuário – Exibição de Conteúdo |
---|---|
– Grupo "Contoso" (Tabela, Grade) – DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) – Imagem "Accounts Receivable.doc" – Editar "Nome" (TableItem, GridItem, Value "Accounts Receivable.doc") – Editar "Data de modificação" (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" (Tabela, Grade) – DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) – Imagem "Accounts Receivable.doc" – Editar "Nome" (TableItem, GridItem, Value "Accounts Receivable.doc") – Editar "Data de modificação" (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) - … |
Se uma grade representar uma lista de itens selecionáveis, os elementos de interface do usuário correspondentes poderão ser expostos com o tipo de controle ListItem em vez do tipo de controle DataItem. No exemplo anterior, os elementos DataItem ("Accounts Receivable.doc" e "Accounts Payable.doc") podem ser aprimorados expondo-os como tipos de controle ListItem porque esse tipo já dá suporte ao padrão de controle SelectionItem.